如何在unix上运行.jar文件?
我在Windows中生成了.jar文件。
我必须在unix中执行该.jar文件。如何在unix上运行.jar文件?
我正在运行的命令(java -jar myJar.jar
),但它给
java.lang.UnsupportedVersionError
我在UNIX上使用Java版本1.5.0.12。
java.lang.UnsupportedVersionError
您必须尝试使用本地java1.5启动使用JDK6编译的jar。
您可以:
- 您在Unix JVM升级到1.6
- 或用
重新编译类:
javac -source 1.5 -target 1.5 -bootclasspath /path/to/jre1.5/lib/rt.jar
,检查是否可以生成1.5个字节码兼容。
与Windows下相同。
java -jar file.jar
- 检查是否已安装JDK或JRE。如果不是,请安装。
- 设置JAVA_HOME =#JDK/JRE home目录
- $ JAVA_HOME /斌/ Java的罐子file.jar
你也应该记住,JVM不向前兼容的,所以如果你使用JDK 1.6制作了一个jar文件,它不能与JDK 1.5一起使用!
在这种情况下,您可以:
安装JDK 1.6的Unix
与
-target 1.5
标志重新编译的jar(但你可能得到任何形式的因API不兼容的错误,所以第一种方式要好得多)
你忘记'-source和-bootclasspath'参数(请参阅下面的答案) – VonC 2009-08-26 11:24:16
您是否尝试过在您的Unix系统上使用较新版本的Java?
如果你控制jar文件,你可以在编译时定位到Java 1.5吗?
UnsupportedVersionError
意味着您已经编译了Java源代码并使用了较新版本的Java,而不是您试图运行的Java源代码。 Java向下兼容(较新版本的Java可以运行用旧版本编译的Java程序),但不向上兼容(旧版本的Java无法运行使用较新版本编译的Java程序)。
你说你在Unix上使用Java 5。您是否在Windows上使用Java 6进行编译?那显然不会起作用。
可能的解决方案:
- 在Windows上编译(最安全的选择)
- 使用编译器标志使用Java 5的源代码:
-source 1.5 -target 1.5
,而你编译(这不会保护你免受使用Java 6-从标准库只有类,所以这不是你的程序将没有错误在Java 5中运行一个完整的担保) - 升级到Java 6在Unix
你忘了'-bootclasspath'(我刚刚在我的答案中加入了该选项;)) – VonC 2009-08-26 10:51:52
[R在Windows机器上使用Java 5编译应用程序。
(Java 6中默认使用新的设备生成Java 6兼容的字节码。最简单的你是安装Java JDK 5,用它来重新编译应用程序)
我面临同样的问题。这是因为运行时和编译时JDK版本不同。更改java编译器版本后,通过eclipse制作jar。以下链接帮助了我。
感谢您随后更改问题。 – Bombe 2009-08-26 13:17:03