Java Netbeans Jar文件未执行

Java Netbeans Jar文件未执行,java,jar,netbeans-7,Java,Jar,Netbeans 7,我一直在使用Netbeans(7.4开发版本)进行一个项目,我想测试可分发的jar。当我使用“java-jarfilename.jar”时,程序运行良好。但是当我试图双击jar文件时,我得到了这样的错误:错误:无法找到或加载主类W:\pathtoproject\dist\jarname.jar 这是没有意义的,我从未见过jar文件认为它是主类的错误。我在项目属性中定义了主类。我提取了jar文件,发现清单文件定义了正确的主类。如何修复此错误 编辑:jar文件中的清单包含以下内容: Manifest

我一直在使用Netbeans(7.4开发版本)进行一个项目,我想测试可分发的jar。当我使用“java-jarfilename.jar”时,程序运行良好。但是当我试图双击jar文件时,我得到了这样的错误:
错误:无法找到或加载主类W:\pathtoproject\dist\jarname.jar

这是没有意义的,我从未见过jar文件认为它是主类的错误。我在项目属性中定义了主类。我提取了jar文件,发现清单文件定义了正确的主类。如何修复此错误

编辑: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提供的所有功能(如打包)。

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

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

要在Eclipse中访问向导,请转到“文件”->“导出…”->“Java”->“可运行JAR文件”


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

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

  • “Main Class”条目必须指向将启动应用程序的类,即声明启动应用程序的主方法的类
  • 在清单文件的所有条目之后,您必须保留三行空白(我从未找到解释为什么需要这样做的文档,但对我来说总是有效的)
  • 您可以使用它来检查Netbeans生成的jar文件是否符合该要求


    希望我帮了忙。

    原来是我的工作电脑出了问题。公司设置使jar文件无法正确执行。当我在我的个人笔记本电脑上试用这个罐子时,效果很好。从那以后,我把它包装成一个可执行文件,然后继续我的快乐之旅。

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

    在同一项目下的java文件中创建框架文件的对象,然后清理并构建项目

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

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

    然后清理并构建您的项目

    jar内的manifest.mf文件中显示了什么?如果您编辑问题并将其添加到其中,将更容易阅读。因此,没有包的类“Driver”有一个main方法?您也可以通过解压来检查清单文件的内容。我知道主类位,但我从来没有听说过第二部分。事实证明,jar文件很好。是我的电脑造成了这个问题。我怀疑问题出在我工作电脑的公司设置上。当我在笔记本电脑上尝试jar文件时,它工作得很好。我已经检查了“编译后构建jar”。Netbeans已经在构建jar了,这不是问题。问题是罐子坏了。原来是我的电脑,不是罐子。