如何在unix上运行.jar文件?

问题描述:

我在Windows中生成了.jar文件。
我必须在unix中执行该.jar文件。如何在unix上运行.jar文件?

我正在运行的命令(java -jar myJar.jar),但它给

java.lang.UnsupportedVersionError 

我在UNIX上使用Java版本1.5.0.12。

+0

感谢您随后更改问题。 – Bombe 2009-08-26 13:17:03

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不兼容的错误,所以第一种方式要好得多)

+1

你忘记'-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
+0

你忘了'-bootclasspath'(我刚刚在我的答案中加入了该选项;)) – VonC 2009-08-26 10:51:52

[R在Windows机器上使用Java 5编译应用程序。

(Java 6中默认使用新的设备生成Java 6兼容的字节码。最简单的你是安装Java JDK 5,用它来重新编译应用程序)

我面临同样的问题。这是因为运行时和编译时JDK版本不同。更改java编译器版本后,通过eclipse制作jar。以下链接帮助了我。

http://crunchify.com/exception-in-thread-main-java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/