【问题标题】:Jar Distributable Not working罐子可分发不工作
【发布时间】:2013-11-14 04:50:26
【问题描述】:

我在 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

【问题讨论】:

  • 您的 jar 清单文件是否包含适当的类路径信息,尤其是 DropboxAPI 库?
  • 如果您使用第三方库,请验证您的构建是否包含该库。
  • 添加清单数据,介意看看吗?
  • 尝试编写自定义清单并编辑 project.properties 但我得到同样的错误

标签: java swing netbeans build jar


【解决方案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

Class-Path 属性中声明-sources.jar-javadoc.jar 没有意义。

您上一条测试错误消息的原因是缺少-jar 选项。

【讨论】:

  • 没有尝试,因为我决定卸载所有 JDK 和 Netbeans,安装最新的 JDK+JRE 并将我的项目迁移到 Eclipse Kepler,它现在可以工作了......我现在检查 hpw 清单文件现在看起来
猜你喜欢
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多