2014-02-09 94 views
0

我已經從Java Eclipse應用程序及其工作正確導出了JAR文件。 這是什麼節目,當出口:JAR文件打開時出錯

enter image description here

這個JAR文件無法正常工作。它返回以下錯誤:

enter image description here

有我的主類是:

package testJarFileProject; 

import javax.swing.JOptionPane; 

class testJarFileProject { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    JOptionPane.showOptionDialog(null, 
      "my application", 
      "show", 
      JOptionPane.OK_CANCEL_OPTION, 
      (Integer) 0, 
      null, 
      new String[]{"ok"}, 
      "default"); 

    } 

    } 

是什麼問題?導出jar文件不正確,但它不會給我一個錯誤? 任何幫助 謝謝

+1

你能發表一些代碼嗎?我打賭你沒有一個主要的方法... – hichris123

+1

一個jar文件與**可執行文件** jar文件不同。 –

+0

ok等待編輯 –

回答

0

你應該明白當你「打開」你的jar時會發生什麼。我相信你的意思是你雙擊它。

如果我的假設是正確的,那麼你的jar就會被「執行」,即執行如下命令行:java -jar yourjar.jar

在這種情況下真的發生了什麼? JVM打開你的罐子,並試圖訪問文件META-INF/MANIFEST.MF應包含類似於下面的一行:

Main-Class: com.company.MyClass

JVM提取完全合格的類名並嘗試執行操作,等效於:

java -cp yourjar.jar com.company.MyClass

如果在jar中找不到類com.company.MyClass,將會打印出錯信息,如發送的錯誤信息。

現在你有所有的工具來發現你的問題。首先,嘗試使用像java -cp yourjar.jar com.company.MyClass這樣的命令來運行程序。如果錯誤仍然存​​在,請檢查jar:它沒有主類。如果問題消失,請檢查清單。它包含錯誤。

如果一切看起來都不錯,請檢查編譯器和JVM版本的兼容性。可能你使用的編譯器編譯的代碼比你用來運行程序的JVM高。

祝你好運。

+0

我有META-INF文件夾所有的要求已經完成和正確,在我的桌面安裝的Java版本的問題呢? –

+0

這可能是問題所在。使用'java -version'檢查你的Java版本。檢查你的編譯器版本。據我所知,你使用IDE編譯你的代碼,所以檢查它的偏好。 – AlexR