-2

我用 Java 创建了一个基本的文件浏览器。我将它导出到 Eclipse 中的可运行 Jar 文件。它在我的 Windows 机器上运行良好,但是当我尝试从命令行在我的 Ubuntu 机器上运行它时,我收到以下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Main. Program will exit.

jar 文件被标记为可执行文件,我尝试通过双击它来运行它,然后右键单击 > 使用 openjdk Java 6 运行时打开

编辑:我尝试使用 Java 7,出现同样的错误。

4

1 回答 1

2

版本 51 大致对应于 Java 7。安装openjdk-7-jre. 或为了发展,openjdk-7-jdk.

这可以通过以下命令完成:

sudo apt-get install openjdk-7-jre

您也可以选择 IcedTea,即icedtea-7-jre-jamvm.

您也可以编译兼容级别为 1.6 的 jar,但如果没有特殊配置,您可能会遇到某些库的问题。您不能在编译器上使用比目标更高的源,因此您需要放弃缩短的泛型,例如:

ArrayList<Foo>=new ArrayList<>();

(改为填写类型参数)和其他漂亮的 7-only 功能。

于 2013-08-03T01:10:12.787 回答