19

我使用的是 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.)
4

17 回答 17

7

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

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>your.app.MainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

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

于 2013-01-26T01:48:05.370 回答
6

尝试这个:

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

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

  3. 编辑“主类:”字段(单击浏览)。

这样,您将选择作为应用程序入口点的主类,并且将正确创建清单。

于 2009-10-13T12:46:49.403 回答
6

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

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <!-- ... -->
    <archive>
      <manifest>
        <mainClass>your.app.SampleClass</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>

来源: Maven 程序集插件使用

于 2013-01-14T17:36:30.233 回答
4

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

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

解决了 :)

于 2010-10-18T10:22:42.093 回答
2

你清理项目并重建了吗?听起来你做得对。以下是一些参考资料,以防万一:

http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.html http://dr.berkeley.edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans

于 2009-03-02T14:38:04.450 回答
1

也许您使用现有源而不是Java 应用程序创建了 Java 项目?

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

于 2009-09-21T22:46:24.180 回答
1

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

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

于 2009-03-12T14:39:43.830 回答
1

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

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

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

于 2009-07-23T21:09:46.347 回答
0

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

/project_folder
    build.xml
    manifest.mf(edit here)
    /dist
    /src
    /test
    /build
于 2009-03-11T17:21:14.530 回答
0

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

你是从以前的版本升级的吗?升级的时候,NB会升级工程文件,但是有时候这个迁移没有做好,会出现这种情况。只需关闭项目,将 nbproject 目录重命名为 nbproject_old 并使用现有源执行新项目 -> Java 项目。再次设置主类并添加依赖项并重试。

于 2009-03-02T18:09:49.057 回答
0

另一种方法完全是在 NetBeans 中开发、运行单元测试等,然后使用 maven 或 ant 脚本进行“真正的”构建。似乎这些类型的构建工具可以让您更好地控制事物的构建方式,并且还可以让您自动化构建。

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

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

于 2009-03-05T15:52:32.810 回答
0

使用 NetBeans IDE 8.0.2手动强制创建...

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

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

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
于 2015-04-15T20:54:32.853 回答
0

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

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

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

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

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

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

于 2009-09-29T09:58:18.443 回答
0

更好的解决方案:

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

manifest.file=manifest.mf

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

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

作品。经测试。

于 2009-09-29T10:01:36.990 回答
0

有趣的信息可能在这里:

http://wiki.netbeans.org/FaqNoMainClass

于 2009-10-22T14:57:07.390 回答
0

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

于 2013-04-20T01:37:16.263 回答
0

好的,你可以执行以下步骤: 1. 右键单击​​项目名称选择项目Set Configuration并选择Customize
2. 选择Run并注意Main Class
3.如果要运行,请选择Browse并设置类。点击确定后。
4. 完成。

于 2016-07-16T02:18:40.313 回答