如何在NetBeans项目生成的jar文件中的清单文件中设置Main类

我有以下问题。 我在NetBeans IDE 6.8中有一个Java项目。 当我编译它并生成一个包含所有可能的.jar文件时,META-INF就不对了。 它不包含要执行的类 – 使用main()方法。

当我单击IDE中的“运行”按钮时,一切正常。 项目的设置也是正确的 – 指向我项目中的一个类。

我尝试添加一个文件夹META-INF与清单文件,但我没有管理。

有没有办法在NetBeans中手动执行此操作,因为我发现如果我在清单中添加缺少的Main类,一切正常。

(我想我遇到了某种错误…)

//编辑:我所追求的结果是我希望使用NetBeans构建创建的jar可以使用命令执行:

从Sun文档引用:

在清单文件中设置Main-Class后,您可以从命令行运行该应用程序: java -jar app.jar

我将对提出的解决方案和帮助我的解决方案进行总结!

阅读此错误报告后: NetBeans 6.8为Java库项目创建jar的方式存在错误。

  1. 在我的项目根目录中创建manifest.mf文件

  2. 编辑manifest.mf。 我看起来像这样:

     Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 16.3-b01 (Sun Microsystems Inc.) Main-Class: com.example.MainClass Class-Path: lib/lib1.jar lib/lib2.jar 
  3. 打开文件/nbproject/project.properties

  4. 添加行

    manifest.file=manifest.mf

  5. 清洁+建立项目

现在.jar已成功构建。

非常感谢vkraemer

您似乎遇到了NetBeans 6.8为Java库项目创建jar的方式中的错误 。

这个问题意味着有一种解决方法。

我无法使用NB 6.8和/或NetBeans 6.9-dev来validation…

您可能希望在NetBeans.org网站/问题跟踪器中注册并更新问题并添加“投票”。

很简单。

  • 右键单击该项目
  • 转到“ 属性”
  • 转到类别中 运行”
  • 在右侧面板中设置Main Class
  • 建立项目

而已。 希望这可以帮助。

在7.3中,只需启用属性/构建/打包/复制从属库,主要类将根据所选目标在构建时添加到清单中。

将manifest.file = manifest.mf添加到project.properties并在项目目录中创建manifest.mf文件在NB 6.9中正常工作,并且也应该在NB 6.8中工作。

这仍然是7.2.1的问题。 创建一个库,因为如果你把它作为一个应用程序并且你被搞砸了,你就不知道它会做什么。

确实找到了如何解决这个问题。 编辑nbproject/project.properties ,将以下行更改为false,如下所示:

mkdist.disabled=false

在此之后,您可以更改属性中的主类,它将反映在清单中。

真正的问题是Netbeans如何JAR项目。 实际发布程序供其他人使用时,Manifest文件中的“Class-Path:”是不必要的。 如果您在Netbeans中添加了外部库,则它将充当程序包。 我建议你使用像WINRAR这样的程序来查看jar中的文件,并将你的库作为包直接添加到jar文件中。

jar文件的内部应该如何显示:

 MyProject.jar Manifest.MF Main-Class: mainClassFolder.Mainclass mainClassFolder Mainclass.class packageFolder IamUselessWithoutMain.class 

我阅读并阅读并阅读以找出为什么我得到一个类未找到错误,结果发现manifest.mf在行中有错误:

 Main-Class: com.example.MainClass 

我通过转到Project Properties对话框(右键单击Project Files ),然后RunMain Class修正了错误,并修正了Netbeans决定放在这里的任何内容。 Netbean插入了项目名称而不是类名。 不知道为什么。 可能在muratina上醉了…

在第一次构建项目后,请不要犹豫,但要查看项目文件。 查找清单文件,然后选择用记事本打开。

添加行:

 Main-Class: package.myMainClassName 

package是你的包, myClassName是带有main(String[] args)方法的类。