Java 如何在unix上运行.jar文件?
我已经在windows中生成了.jar文件。Java 如何在unix上运行.jar文件?,java,unix,Java,Unix,我已经在windows中生成了.jar文件。 我必须在unix中执行该.jar文件 我正在运行这个命令(java-jarmyjar.jar),但它给出了 java.lang.UnsupportedVersionError 我在Unix中使用java 1.5.0.12版。与在Windows下相同 java -jar file.jar 检查是否安装了JDK或JRE。如果不是,请安装 设置JAVA_HOME=#JDK/JRE主目录 $JAVA_HOME/bin/JAVA-jar file.ja
我必须在unix中执行该.jar文件 我正在运行这个命令(
java-jarmyjar.jar
),但它给出了
java.lang.UnsupportedVersionError
我在Unix中使用java 1.5.0.12版。与在Windows下相同
java -jar file.jar
- 检查是否安装了JDK或JRE。如果不是,请安装
- 设置JAVA_HOME=#JDK/JRE主目录
- $JAVA_HOME/bin/JAVA-jar file.jar
- 将JDK1.6安装到Unix
- 使用
标志重新编译jar(但是由于API不兼容,您可能会得到任何类型的错误,因此第一种方法要好得多)-target 1.5
java.lang.UnsupportedVersionError
您必须尝试使用本地java1.5启动一个用JDK6编译的jar
您可以:
- 将Unix上的jvm升级到1.6
- 或者使用
检查是否可以生成与1.5字节码兼容的源代码。
不支持VersionError
意味着您已使用较新版本的Java编译了Java源代码,而不是尝试运行它。Java向下兼容(较新版本的Java可以运行使用较旧版本编译的Java程序),但向上不兼容(较旧版本的Java不能运行使用较新版本编译的Java程序)
您说您正在Unix上使用Java5。你是在Windows上用Java6编译的吗?那么很明显这是行不通的
可能的解决办法:
- 在Windows上使用Java 5编译源代码(最安全的选项)
- 编译时使用编译器标志:
(这不会保护您不使用标准库中的纯Java 6类,因此这不能完全保证您的程序在Java 5上运行时不会出错)-source 1.5-target 1.5
- 在Unix上升级到Java 6
(默认情况下,Java 6生成与Java 6兼容的字节码以使用新功能。最简单的方法是安装Java 5 JDK并使用它重新编译应用程序)我也遇到了同样的问题。这是因为运行时和编译时JDK版本不同。更改java编译器版本后,通过eclipse创建jar。下面的链接帮助了我
您忘记了
-bootclasspath
(我刚刚在回答中添加了选项;))您忘记了-source和-bootclasspath
参数(请参见下面的回答),感谢您在之后更改了问题。要在运行jar时传递参数,请使用java-jar file.jar arg1 arg2
javac -source 1.5 -target 1.5 -bootclasspath /path/to/jre1.5/lib/rt.jar