首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java跨平台吗?

Java跨平台吗?
EN

Stack Overflow用户
提问于 2011-05-12 12:30:12
回答 9查看 43.4K关注 0票数 25

我想开发一个跨平台的应用程序。

Java跨平台吗?我的意思是,我可以在Windows中开发Java应用程序,并在Mac和Linux中使用它吗?

如果是,怎么做?

我发现应用程序是用Java编写的,它有两个安装文件,一个用于Windows,另一个用于Mac。这让我很困惑。

如有任何说明或建议,将不胜感激。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-05-12 12:32:27

是跨平台的

Java是跨平台的,因为编译后的Java程序运行在所有存在JVM的平台上。(这适用于所有主要操作系统,包括Windows、major和Linux。)

我的意思是我可以在windows中开发应用程序,并在mac和Linux?中使用它。

是的,,这是可能的。

这(以及安全性方面)是在虚拟机中运行程序的主要优点之一。

如果是,怎么做?

  • 用Java编写应用程序(在.java文件中)
  • 使用Eclipse或javac编译应用程序(放入.class文件)
  • (可选)将.class文件捆绑在可执行文件(.jar文件)中

相同的.jar文件可以在Windows系统、Mac系统等上分发和执行。

我发现应用程序是用Java编写的,它有两个安装文件,一个用于windows,另一个用于mac。这让我很困惑。

这是因为一些应用程序依赖于特定于平台的特性。然后将它们与不同的平台特定库捆绑在一起。

除非您开发的应用程序本身依赖于特定于平台的特性(例如,低级的系统调用),否则您应该能够很好地使用普通Java。

的重要评论-- by @Peter Lawrey

它可以是当应用程序是独立于平台,安装程序不是。例如,IntelliJ有三个特定于平台的安装程序,它们不是用Java编写的,而是有一个zip,您可以在任何平台上解压缩它就可以工作了。

票数 47
EN

Stack Overflow用户

发布于 2011-05-12 12:34:21

您可以在每个拥有JVM的设备上运行Java应用程序。如果没有,你就倒霉了。

奥德的评论很重要。C和C++在很多设备上都有编译器。

切换平台时,不需要重新编译Java字节代码。

C和C++将要求开发人员在将应用程序分发到目标系统之前重新编译它,但是一旦完成,客户端将能够运行而不会出现问题。

无论您选择哪种语言,都必须解决平台特定的自定义和设置问题。您的应用程序越依赖于特定于平台的特性,它的可移植性就越低。

更新:

让我们重温问题中的原词:

我想开发一个跨平台的应用程序。

这是一个目标-直接引用。没有关于网络,移动,或桌面应用的详细信息。

Java跨平台吗?我的意思是,我可以在Windows中开发Java应用程序,并在Mac和Linux中使用它吗?

定义“跨平台”。听起来这里的偏见是“字节代码可移植性”。C/C++不能做到这一点,但是只要坚持ANSI C/C++并避免使用供应商扩展,“源代码可移植性”当然是可能的。

Java从一开始就声名大噪,一直以来都是字节代码可移植性。这就是JVM带给你的东西。这并不意味着整个应用程序将是可移植的,因为您可能没有很好地管理其他依赖项。

如果我用"C/C++“代替"Java”,那么跨平台就意味着一些不同的东西。我不能拿起一个为一个平台编译的.exe或.so,期望在另一个平台上运行它,但是如果我为每个平台创建一个.exe或.so并使它们可用,那么当然有可能在多个平台上运行相同的源代码。

如果是,怎么做?

如果您已经将Java应用程序打包成一个JAR,那么您可以将其放在任何您喜欢的平台上。

如果您对感兴趣的平台拥有多个C/C++ .exes,那么您当然可以在需要时运行它。

票数 3
EN

Stack Overflow用户

发布于 2011-05-23 22:46:24

关于Java的可移植性有一个重要的警告。“业务逻辑”(非UI内容)是可移植的,但至少有六种不同(且不兼容)的Java用户界面范例,因此,为在Android上运行而编写的Java代码(甚至忽略了Android不兼容的JVM)不会在诺基亚手机上运行,而这两种模式的代码都不会在桌面PC上运行。

但据我所知,没有比这更好的语言了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5978005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档