如何确保我的* jar或* class将在MacOS上运行?

时间:2018-09-11 18:24:01

标签: java macos ubuntu

对不起,如果这是题外话。我是Java初学者,知道Java应该是跨平台一致的。但是我想知道我的jar文件或* class文件在Ubuntu上执行的事实是否可以保证它在MacOS上正常运行?

我基本上执行以下操作来创建* class和* jar。两个Java类MAIN.java依赖于SIDE.java,两个Java文件都包含package classes;标头(javac创建一个名为classes的文件夹,并放置MAIN.classSIDE.class在里面):

javac -d . SIDE.java MAIN.java
jar cvfe MAIN.jar classes/MAIN classes/*.class

我尝试同时运行:

java classes.MAIN -read number.logs

java -jar MAIN.jar -read number.logs

,它们都可以在Ubuntu上正常运行。这足够好并且可以在MacOS上运行吗? (我没有MacOS,在这种情况下是否可以使用模拟器来检查事物?)

2 个答案:

答案 0 :(得分:4)

是的,直到并且除非您使用一些环境变量(即特定于平台的功能,例如 System.getProperty("os.name")

JVM保证了这种跨平台的可移植性。您可以详细了解here

答案 1 :(得分:1)

出于某种原因,Java是跨平台的。您的Java代码将转换为Java字节码(您的.class文件),而JVM(Java虚拟机)是运行您的字节码的计算机。

此JVM随操作系统一起安装Java。因此,如果可以安装JRE(包括JVM),则可以运行代码。

有一个例外,Java语言有时使用os-standards来表示图形(awt类),因此,如果您使用的是这些类,则您的程序看起来可能会有所不同,但工作原理相同。

例如,操作系统如何保存文件,如何由JVM处理,并且您不应该成为高级开发人员,除非您遇到操作系统方面的限制。这些限制(视情况而定)由Exceptions处理。如果您在代码中处理异常,则在一个操作系统上无法正常工作的情况几乎没有。