2013-07-02 122 views
1

我使用NetBeans的教程在java中創建了一個程序,它在Windows中工作良好。然而,當我試圖在Linux中運行(紅帽)同樣.jar我得到以下異常:無法找到運行jar的主類

Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=my/numberaddition/NumberAdditionUI, offset=6

運行此命令:

java -jar NumberAddition.jar

輸出結尾

Could not find the main class: my.numberaddition.NumberAdditionUI. Program will exit.

t的源代碼他的例子可以找到here。 我錯過了什麼?

編輯:有什麼我需要添加的操作系統之間的可移植性?

編輯,回答:感謝評論者留下了可能的重複鏈接。從這些和一些進一步的研究中,我可以確定Linux環境下的JRE是一個較早的版本(1.6),而不是最初編譯該程序的版本(1.7)。

+1

可能重複:HTTP://計算器.com/questions/14926402/unsupportedclassversionerror -jvmcfre003-bad-major-version-in-websphere-as-7 –

+0

你在RedHat Linux中使用OpenJDK嗎? –

+1

可能的重複項:http:// stackoverflow。com/questions/6066103/what-is-reason-for-unsupportedclassversionerror –

回答

2

檢查您的RedHat框中的Java版本。

java -version 

您看到的異常與試圖運行已使用較新版本的JDK編譯的字節碼的JVM有關。

從RedHat上通過從Oracle下載它或使用yum獲取適合於您編譯的JDK的版本來更新您的Java版本。

或者在RedHat上重建您的軟件;)如果您的代碼不依賴於更高版本的語言增強功能。

+0

就是這樣,謝謝! – Bts

0

運行此命令:

Java的罐子NumberAddition.jar

輸出結尾:

找不到主類:my.numberaddition.NumberAdditionUI。 程序將退出。

在執行與Java的罐子,主類需要罐子清單文件或完整路徑被提及到主類應指定把jar文件在類路徑

對於例如:如果my.numberaddition。 MainClass是你的主類... 運行方式

java命令NumberAddition.jar my.numberaddition.MainClass

相關問題