Java

Kubuntu 中的 JRE 不允許我執行 .jar 文件

  • July 13, 2012

我在嘗試在 Kubuntu 上執行 .jar 應用程序時遇到問題。我在 Windows 的 NetBeans 中創建了一個應用程序,並將其編譯成一個 .jar 文件。首先 Windows 找不到主類。我搜尋了網際網路並修復了 JRE 的一些系統資料庫值,現在一切正常。但是,在 Kubuntu 中也出現了同樣的問題,但我找不到任何幫助。我什至嘗試解壓縮 .jar 文件並使用許多不同的路徑地址修改清單文件中的類路徑,但沒有任何效果。

由於 Windows 中的問題出在 JRE 而不是我的應用程序上,我認為 Kubuntu 中也發生了同樣的情況。一個重要的注意事項是我也在 Kubuntu 上安裝了 NetBeans,當我在 Netbeans 下調試或執行應用程序時,它工作正常,但是當我編譯它並嘗試執行它時:

java -jar “MBoxTest.jar”

我在 Windows 上遇到了同樣的錯誤,包括最後一個說它找不到主類的錯誤:

Exception in thread "main" java.lang.UnsupportedClassVersionError: my/mboxtestui/MBoxTestUI : 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: my.mboxtestui.MBoxTestUI. Program will exit.

您正在針對較低版本的 JVM執行較高版本的程式碼 ( 51= )。java7因此,針對相同版本的 jdk 編譯和執行您的程式碼。我猜您可能安裝了多個版本的 java 執行時。

引用自:https://unix.stackexchange.com/questions/42925