我只是在学习Java。我编译并创建了一个jar文件,用于一个简单的带有轻型GUI的问答游戏。所有这些都是用“javac -d ...”和“jar -xvmf...”手动从Ubuntu14.04终端完成的。
以下是我的版本细节:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
javac 1.8.0_11为了创建Java SE 5.0,我遵循了一个教程,因此我想没有使用'1.8‘中的新特性。它编译好了,对我来说也很好。当我在Ubuntu14.04中使用OpenJDK (可用的最新版本)的朋友尝试运行它时,他收到了许多错误,包括不支持的主要小工具.52.。
我没有终端的全部详细输出。有什么办法可以避免这种情况,为什么会发生这种情况,尽管我没有使用最新版本特有的任何新特性?
我认为Java应该是--“写一次,到处运行”,即使是最简单的东西--只需要稍微老一点的版本--的兼容性问题让我不得不重新思考!
发布于 2014-10-21 17:52:26
字节码的版本并不取决于您是否使用Java 8新特性。这仅仅取决于您使用的编译器。默认情况下,Java 8编译器将生成Java8字节码,除非您使用选项-target指定更早的版本。
附带注意:您的朋友没有使用最新版本的OpenJDK (即Java 8),否则,他将不会得到此异常。
https://stackoverflow.com/questions/26493037
复制相似问题