2009-08-18 31 views
2

我已經編寫了需要Java 1.6的Java GUI應用程序(使用Netbeans 6.7)。我成功地在XP PC和我的Mac OSX(10.5.7)上運行它。無法在Vista Business上執行Java應用程序 - 「無法找到主類...程序將退出」

我的客戶端正在運行Vista Business,並且無法通過雙擊jar文件來運行應用程序。他可以從命令行執行它:「javaw -jar ...」收到的錯誤是:「無法找到主類...程序將退出」。

我問過客戶端執行以下操作:

  • 安裝最新的JRE
  • 運行JarFix

我驗證過:

  • JRE是安裝在正確位置
  • jar file association is correct
  • 應用程序的工作(我已經測試它在XP和Mac OSX和客戶端可以從命令行運行它)

上還有什麼我可以調查任何想法?請注意,Netbeans創建了主jar文件,並創建了一個lib目錄以及其他一些Jarfiles。我解壓縮了jarfile並檢查了清單文件(看起來不錯)。正確的主類也在應用程序的jar文件中。

客戶端是否需要小心從Vista中執行應用程序的位置?

非常感謝。 Prembo

+0

經過一番調查,事實證明客戶端並未遵循安裝說明。事實證明,他們試圖從包含應用程序的zip文件中運行jar文件!這會教我!無論如何感謝您的偉大建議。 – Prembo 2009-08-20 23:12:18

回答

2

完全相同的JAR文件在其他操作系統上工作嗎?

JAR文件中的清單文件(META-INF/MANIFEST.MF)是否正確?需要注意的一點是清單文件必須以空行結束;如果沒有,清單文件中的最後一行將被忽略。因此,舉例來說,如果你的manifest文件的最後一行是這樣的:

Main-Class: com.mypackage.MyProgram 

,它不跟一個空行,那麼Java將忽略行和它將無法找到程序的主要類。

請參閱Sun's Java Tutorial about deploying Java programs in JAR files瞭解有關如何將應用程序打包到JAR中的確切詳情;它還包含有關清單文件需要以空行結束的警告。

另外,仔細檢查是否使用了正確版本的Java。您是否使用與Windows XP完全相同的Java版本?請嘗試:

java -version 

查看正在使用哪個Java版本。

+0

是的 - 確切的jar文件可以在Mac OSX,XP和Vista Business的命令行中使用。 Manifest由Netbeans創建,所以也可以。我已經驗證過,最後一行僅僅是註釋行,所以它不是問題。 Java版本是不同的,但我已經嘗試了各種1.6.x版本,並在不同的操作系統上都可以(當然除了Vista Business) – Prembo 2009-08-18 14:40:51

+0

感謝您的建議...... – Prembo 2009-08-18 14:43:23

1

我正在運行Vista企業版,它與其他Windows版本(關於Java)之間的差異很小。

這裏有一些可能會或可能無法正常工作隨機的想法:

  • 你試過:右鍵單擊該罐 - >打開方式 - >的Java(TM)平臺SE二進制
  • 難道權限相關? (可能不是因爲它通過命令行運行)
  • 您是否試過UAC? (UAC沙箱java應用程序,並且它們不能寫入程序文件等特定位置)
  • 您是否確定它們具有與您在JAVA_HOME/lib/ext/
  • 中相同的文件?您可以嘗試設置環境變量:
    • JAVA_HOME = <your_java_home>
    • CLASSPATH =。
    • PATH = <your_java_home> \ BIN
+0

感謝您的建議。我會調查。 – Prembo 2009-08-19 17:00:42

0

有時JDK需要單獨安裝,與淨豆IDE一起。如果您安裝了jdk,那麼您可以嘗試檢查環境變量中的類路徑,路徑。