0

我在 Netbeans 中使用 DropboxAPI 开发了一个应用程序,并且我正在使用 Swing 构建一个 GUI。

如果我从 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

所以我决定用不同的关键字进行多次搜索,但无济于事。最奇怪的是,当我尝试运行其中包含静态 void main 方法的 .class 文件时,我收到一个错误,即没有定义 main 方法,尽管它在 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
4

1 回答 1

1

清单文件必须在具有确切位置的 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

在属性中声明-sources.jaror是没有意义的。-javadoc.jarClass-Path

您的最后一条测试错误消息是由于缺少该-jar选项而引起的。

于 2013-11-03T14:41:56.427 回答