2013-11-03 24 views
0

我開發了一個在Netbeans中使用DropboxAPI的應用程序,我使用Swing構建GUI。Jar Distributable不工作

該應用程序工作正常,如果我從IDE運行它,但是當我清理&構建它時,/ dist中的.jar文件根本不會打開。

所以我打開了我的命令行,我有這個錯誤

java -jar "%PATH_TO_MY_APP%\FileTransferSpeedMonitor.jar" 
Error: An unexpected error occurred while trying to open file %PATH_TO_MY_APP\FileTransferSpeedMonitor.jar 

所以我決定用不同的關鍵字,但無濟於事多次搜索。 最奇怪的是,當我嘗試運行其中包含靜態主要方法的.class文件時,出現一個錯誤,即沒有定義主要方法,儘管它在IDE中正常工作。

我不確定下面的不匹配是否相關,因爲其他的擺動應用程序工作正常(例如:攝氏華氏教程),反正,我的應用程序似乎沒有拋出任何異常或任何錯誤的跡象,但我需要找出造成這一切的原因。

C:\Users>java -version 
java version "1.7.0_45" 
Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing) 

和Netbeans 7.3.1

Product Version: NetBeans IDE 7.3.1 (Build 201306052037) 
Java: 1.7.0_05; Java HotSpot(TM) Client VM 23.1-b03 
Runtime: Java(TM) SE Runtime Environment 1.7.0_05-b05 
System: Windows 7 version 6.1 running on x86; Cp1252; en_US (nb) 
... 

後編輯#1 - 加入MANIFEST.MF數據

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.4 
Created-By: 1.7.0_05-b05 (Oracle Corporation) 
Class-Path: lib/dropbox-core-sdk-1.7.5-javadoc.jar lib/dropbox-core-sd 
k-1.7.5-sources.jar lib/dropbox-core-sdk-1.7.5.jar lib/jackson-core-2 
.2.3.jar lib/org-apache-commons-io.jar 
X-COMMENT : Main-Class will be added automatically by build 
Main-Class: dbftsm.swing.ExploreDBX 

後編輯#2 - 從CLI相加後的輸出,不進行任何意義上在所有

%path_to_buld%\dist>java FileTransferSpeedMonitor.jar 
Error: Could not find or load main class FileTransferSpeedMonitor.jar 
+1

您的jar的清單文件是否包含相應的類路徑信息,尤其是DropboxAPI庫? –

+0

如果您使用第三方庫,驗證是您的版本包含該庫。 – alex2410

+0

添加艙單數據,介意如果你看看? –

回答

1

該清單fil e必須在JAR中,確切位置爲META-INF/MANIFEST.MF

dist文件夾必須包含所有必需的依賴在lib文件夾,通常是:

%path_to_buld%\dist\lib\dropbox-core-sdk-1.7.5.jar 
%path_to_buld%\dist\lib\jackson-core-2.2.3.jar 
%path_to_buld%\dist\lib\org-apache-commons-io.jar 

它沒有意義在Class-Path屬性來聲明-sources.jar-javadoc.jar

您最後的測試錯誤消息是由缺少-jar選項解釋的。

+0

沒試過,因爲我已經決定要卸載所有JDK的和Netbeans,安裝最新的JDK + JRE和將我的項目遷移到Eclipse Kepler並且它現在可以工作了......我現在將檢查hpw清單文件的外觀 –

相關問題