我用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,出现了同样的错误。答案 0 :(得分: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,但如果没有特殊配置,您可能会遇到某些库的问题。你在编译器上can't use a higher source than target,所以你需要放弃缩短的泛型,例如:
ArrayList<Foo>=new ArrayList<>();
(改为填写类型参数)和其他各种漂亮的7-only功能。