2

我一直在使用 Netbeans(7.4 开发版)开发一个项目,我想测试可分发的 jar。当我使用“java -jar filename.jar”时,程序运行良好。但是当我尝试双击 jar 文件时,我得到了这种错误: Error: Could not find or load main class W:\pathtoproject\dist\jarname.jar.

这没有意义,我从未见过 jar 文件认为它是主类的错误。我在项目属性中定义了主类。我提取了 jar 文件,发现 Manifest 文件定义了正确的主类。我该如何解决这个错误?

编辑: jar 文件中的清单具有以下内容:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_21-b11 (Oracle Corporation)
Class-Path: 
X-COMMENT: Main-Class will be added automatically by build
Main-Class: Driver

驱动程序确实有通常的主要方法。

编辑 2:我不知道它是否有所作为,但我的驱动程序和其他一些重要的类不是任何包的一部分。只有帮助类被打包。我接受过硬编码训练(即记事本和 cmd),所以我不习惯使用 Netbeans 必须提供的所有功能(例如打包)。

4

4 回答 4

0

NetBeans 提供的用于制作可执行 jar 的选项实际上非常有用。我发现的唯一更好的制作 jar 文件的工具是在 Eclipse 中制作 jar 文件的向导。我强烈建议您使用其中一种工具。

Eclipse 可执行 jar 创建向导值得下载 Eclipse。使用该向导一次后,您可以保存一个 ANT 脚本,以便您可以根据需要返回使用命令行。Eclipse 向导可以执行高级且非常有用的任务,例如将您的代码及其所有必需的库打包到一个独立的可执行 jar 文件中。

要进入 Eclipse 中的向导,请转到“文件”->“导出...”->“Java”->“可运行的 JAR 文件”。

如果您仍想使用 NetBeans,请转到“运行”->“设置项目配置”->“自定义...”->“构建”->“打包”并选择“编译后构建 JAR”。在制作 jar 之前,您可能需要进行干净的构建。您的 jar 将显示在项目文件根目录的“dist”文件夹中。

于 2013-08-09T00:39:17.880 回答
0

对于可执行的 jar,您必须关注清单文件中的两件事:

  1. 'Main-Class' 条目必须指向将启动应用程序的类,即您声明用于启动应用程序的 main 方法的类。
  2. 在清单文件中的所有条目之后,您必须将三行留空(我从未找到解释为什么需要这样做但始终对我有用的文档)。

您可以使用此工具检查 Netbeans 生成的 jar 文件是否符合该要求。

希望我有所帮助。

于 2013-08-09T01:11:50.260 回答
0

事实证明,我的工作电脑是问题所在。公司设置使 jar 文件无法正确执行。当我在我的个人笔记本电脑上尝试这个罐子时,它工作得很好。从那里我只是将它包装成一个可执行文件并继续我的快乐方式。

于 2013-08-09T21:28:54.930 回答
0

您的项目必须包含两个或三个 java 文件,其中一个是 java 文件,另一个是具有帧编码的 frame.java 文件。

在同一个项目下的java文件中创建你的frame文件的对象,然后清理并构建你的项目。

例如,如果您的项目名称为 project11,并且在它下面有两个文件,分别名为 project11.java 和 project11frame.java,则在 project11.java 中创建对象:

project11frame pf = new project11frame();
pf.setVisible(true); 

然后清理并构建您的项目!

于 2017-07-14T13:34:45.220 回答