在NetBeans中生成可执行jar

我正在使用NetBeans 6.5,由于某种原因它不会生成“开箱即用”的可执行jar。

我将我的项目设置为主项目,在项目属性“运行”菜单中定义了主类,当我按F6运行它时,它可以完美地工作。

我查看了清单文件,它确实没有在那里定义主类,也省略了库依赖项。

我错过了什么吗? 有没有办法(除了手动更改清单文件)生成可执行的jar文件?

编辑:是的,我尝试了清理和重建,它在dist文件夹中生成了jar,仍然使用相同的manifest.mf

Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 10.0-b23 (Sun Microsystems Inc.) 

我在NetBeans 7.2.1中遇到了与Maven Java Application项目相同的问题。 修改pom.xml文件以包含maven程序集插件 ,并对myrho的答案进行一次调整(需要引用预定义描述符“jar-with-dependencies”):

  maven-assembly-plugin 2.4   jar-with-dependencies    your.app.MainClass      make-assembly package  single     

另一种方法是在NetBeans中构建一个不使用Maven的Java Application项目。 选择File – > Project Properties – > Build – > Packaging并选中“Copy Dependent Libraries”复选框。

如果您正在使用maven程序集插件并希望构建具有依赖项的可执行jar,则需要将此部分添加到pom.xml中maven-assembly-plugin部分的配置中:

  maven-assembly-plugin     your.app.SampleClass     

来源: Maven Assembly插件用法

尝试这个:

  1. 右键单击“项目”面板上的项目,选择“属性”

  2. 在新窗口中单击“运行”。

  3. 编辑“Main Class:”字段(单击Browse)。

这样,您将选择主类,它是应用程序的入口点,并且将正确创建Manifest。

很简单,.jar和.jad文件都在dist文件夹中

我也在寻找答案,并从http://forums.netbeans.org/ptopic3465.html获得了这个答案

解决了 :)

如果清理并构建项目,则应在“dist”目录中创建jar。

它应该在项目目录的顶层创建manifest.mf。

在遇到同样的问题之后,我实际上遇到了这个页面,我编辑了manifest.mf文件,但是更改没有显示在jar MANIFEST.MF文件中。 我发现了我遇到的问题,并且认为我会传递信息以防万一它是相关的。

我做错了是因为我没有将我正在进行的项目设置为主要项目,所以当我编辑正确的清单时,我正在编译错误的项目。

所以我想你的故事没有检查,看看你是否为你正在编辑的manifest.mf文件选择了正确的项目?

也许您使用Existing Sources而不是Java Application创建了Java Project

我有类似的问题,并创建新的Java应用程序,然后手动复制src文件解决了问题 – 一切工作“开箱即用”。

我有经验,构建过程是不同的,具体取决于项目类型。

我想,你已经创建了“Java类库”项目。

所以只需创建一个“Java Application”项目,然后将所有类合并到它。

然后,Netbeans 不会覆盖,而是"manifest.mf" 增强到JAR中。

当然,这是一个愚蠢的Netbeans错误。 当然应该可以在之后添加主类。

编辑:请看我的其他答案。 这更容易。

确实很奇怪,它应该开箱即用,包括类路径。

你从以前的版本升级了吗? 升级时,NB会升级项目文件,但有时这种迁移工作不顺利,弹出这种情况。 只需关闭项目,将nbproject目录重命名为nbproject_old并使用现有源执行新项目 – > Java项目。 再次设置主类并添加依赖项,然后重试。

另一种方法完全是在NetBeans中开发,运行unit testing等,然后使用maven或ant脚本来进行“真正的”构建。 看起来这些类型的构建工具可以让您更好地控制构建方式,还可以让您自动构建构建。

对于maven,您可以使用maven jar插件轻松地向清单添加条目:

http://maven.apache.org/plugins/maven-jar-plugin/

更好的解决方案:

编辑nbproject / project.properties并添加条目

 manifest.file=manifest.mf 

manifest.mf应该在项目的根目录中,并且只包含:

 Manifest-Version: 1.0 X-COMMENT: Main-Class will be added automatically by build 

作品。 测试。

有趣的信息可能在这里:

http://wiki.netbeans.org/FaqNoMainClass

转到文件视图。 在根目录中创建manifest.mf。

 /project_folder build.xml manifest.mf(edit here) /dist /src /test /build 

在7.3中,只需启用Properties / Build / Package / Copy Dependent Libraries,主类(取决于所选目标)将在构建时添加到manifest中。

使用NetBeans IDE 8.0.2手动强制创建

  1. 在Project导航器中,展开< project >并右键单击Project Files / pom.xml
  2. 单击“运行Maven /目标”
  3. 在“目标”字段中键入“包”
  4. 单击确定

然后输出窗口将显示(在Mac上)…

 Building jar: /Users//NetBeansProjects//target/-1.0-SNAPSHOT.jar 

使用neatbean,您可以执行以下步骤:1。右键单击名称项目,选择项目设置配置并选择自定义
2.选择运行并注意主类
3.如果要运行,请选择“ 浏览”并设置类。 单击确定后。
4.完成。