我想开发一个跨平台的应用程序。
Java跨平台吗?我的意思是,我可以在Windows中开发Java应用程序,并在Mac和Linux中使用它吗?
如果是,怎么做?
我发现应用程序是用Java编写的,它有两个安装文件,一个用于Windows,另一个用于Mac。这让我很困惑。
如有任何说明或建议,将不胜感激。
发布于 2011-05-12 12:32:27
是跨平台的吗
Java是跨平台的,因为编译后的Java程序运行在所有存在JVM的平台上。(这适用于所有主要操作系统,包括Windows、major和Linux。)
我的意思是我可以在windows中开发应用程序,并在mac和Linux?中使用它。
是的,,这是可能的。
这(以及安全性方面)是在虚拟机中运行程序的主要优点之一。
如果是,怎么做?
.java文件中).class文件).jar文件)中相同的.jar文件可以在Windows系统、Mac系统等上分发和执行。
我发现应用程序是用Java编写的,它有两个安装文件,一个用于windows,另一个用于mac。这让我很困惑。
这是因为一些应用程序依赖于特定于平台的特性。然后将它们与不同的平台特定库捆绑在一起。
除非您开发的应用程序本身依赖于特定于平台的特性(例如,低级的系统调用),否则您应该能够很好地使用普通Java。
的重要评论-- by @Peter Lawrey
它可以是当应用程序是独立于平台,安装程序不是。例如,IntelliJ有三个特定于平台的安装程序,它们不是用Java编写的,而是有一个zip,您可以在任何平台上解压缩它就可以工作了。
发布于 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,那么您当然可以在需要时运行它。
发布于 2011-05-23 22:46:24
关于Java的可移植性有一个重要的警告。“业务逻辑”(非UI内容)是可移植的,但至少有六种不同(且不兼容)的Java用户界面范例,因此,为在Android上运行而编写的Java代码(甚至忽略了Android不兼容的JVM)不会在诺基亚手机上运行,而这两种模式的代码都不会在桌面PC上运行。
但据我所知,没有比这更好的语言了。
https://stackoverflow.com/questions/5978005
复制相似问题