我在Windows中生成了.jar文件。
我必須在unix中執行該.jar文件。如何在unix上運行.jar文件?
我正在運行的命令(java -jar myJar.jar
),但它給
java.lang.UnsupportedVersionError
我在UNIX上使用Java版本1.5.0.12。
我在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。
您可以:
重新編譯類:
javac -source 1.5 -target 1.5 -bootclasspath /path/to/jre1.5/lib/rt.jar
,檢查是否可以生成1.5個字節碼兼容。
與Windows下相同。
java -jar 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進行編譯?那顯然不會起作用。
可能的解決方案:
-source 1.5 -target 1.5
,而你編譯(這不會保護你免受使用Java 6-從標準庫只有類,所以這不是你的程序將沒有錯誤在Java 5中運行一個完整的擔保)你忘了'-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