2012-04-15 90 views
0

我有一個由Eclipse生成的.jar,我無法在其他計算機上運行(使用Windows XP)。出現「無法找到主類,程序將退出」消息。這臺電腦運行良好,由Netbeans生成另一個.jar,所以它不是JRE的問題,我想。我更新了JRE,但它沒有任何改變。問題是什麼?「找不到主類」錯誤

更新:我忘了提及,我做了一個可運行jar文件。在另外兩臺電腦上它工作正常(贏得7和XP),但在那個特定的一個沒有。

更新2:這是一個Swing應用程序,所以JAR通過雙擊運行。

+0

你想要運行一個類的'main'方法嗎? – Bohemian 2012-04-15 19:04:37

+0

是的。我有一個主要方法的JFrame。 – user1091733 2012-04-15 19:10:48

+0

你是對的 - 我沒有時間閱讀關於與stackoverflow功能相關的所有東西,我認爲點擊「這個答案很有用」就是這樣做的。對未來的好建議:) – user1091733 2012-04-15 19:26:40

回答

1

檢查的內容。 Main-Class: foo.Bar行必須對應於jar文件中的/foo/Bar.class項,並且foo.Bar.java必須包含適當的main-method。同樣也需要複製Class-Path:行中的所有jar參考。

使用「jar tvf my.jar」查看佈局。

+0

但即使類路徑出現問題,它如何能在其他計算機上正常運行?這裏是我的清單(一個類的非常簡單的應用程序在包主要嘗試)Manifest-Version:1.0 Class-Path:。 Main-Class:main.Try – user1091733 2012-04-15 20:25:35

+0

您需要複製Class-Path:行中引用的任何jar。 – 2012-04-15 20:55:20

+0

但正如您所看到的,ClassPath中沒有額外的JAR(只有一個點)。應用程序非常簡單 - 一個類從一個JButton繼承JFrame,不需要額外的代碼。 – user1091733 2012-04-15 21:20:36

0

你必須把罐子在classpath中,像這樣:清單的

java -classpath "C:\somepath\myapp.jar" mypackage.MyClass 
+0

正如我寫的那樣,該計算機沒有運行jar的問題,但由Netbeans生成,所以我想這個問題與classpath沒有關聯。 – user1091733 2012-04-15 19:15:46

+0

@ user1091733但是類路徑並不是特定於計算機的。它特定於每一次執行java。也許這個問題不在類路徑中,但如果你想讓我們解決你的問題,我們不能接受你的話。 – 2012-04-15 19:45:03