1

因此,由于 Netbeans 生成的 jar 需要它也生成的 lib 文件夹,我该如何将 lib 文件夹添加到生成的 jar 并更改 Manifest 以便它在不使用任何命令行的情况下启动?

4

4 回答 4

2

..所以它在没有任何命令行使用的情况下启动?

如果它有 GUI,请使用Java Web Start启动它。

JWS 提供了许多吸引人的功能,包括但不限于启动屏幕、桌面集成1、文件关联、自动更新(包括延迟下载和更新的编程控制)、按平台、架构或 Java 版本划分本地和其他资源下载,运行时环境配置(最低 J2SE 版本、运行时选项、RAM 等),使用扩展轻松管理公共资源。

  1. 桌面集成:支持平台上的桌面快捷方式和菜单项 - 不再基于命令行启动!

请参阅在 NetBeans IDE 中启用 Java Web Start以开始使用。

于 2012-06-14T05:15:12.653 回答
2

虽然有很多方法可以做到这一点,但它们大多涉及到 Ant build.xml 的修改。是迄今为止我发现的最好的教程。仅供参考,还有其他非常相似的 SO 问题。

于 2012-06-14T05:15:46.867 回答
2

NetBeans IDE 自动处理所有这些。

  1. 新项目 -> Java / Java 桌面应用程序
  2. 按下一步,填写所有内容并选中“使用专用文件夹存储库”,按完成
  3. 转到文件视图,双击 build.xml 并从“Ant 目标”列表中找到“jar”目标,右键单击“运行目标”。
  4. 这样,生成的 .jar 文件将包含所有依赖项并具有带有 Main-Class 集的清单:

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.8.1
    Created-By: 1.6.0_26-b03 (Sun Microsystems Inc.)
    Main-Class: desktopapplication1.DesktopApplication1
    Class-Path: lib/appframework-1.0.3.jar lib/swing-worker-1.1.jar
    

已编辑:这不会将库打包到 .jar 中,而是将它们放在旁边的单独库中。见@user845279

于 2012-06-14T05:16:17.253 回答
0

I ended up using ninjacave.com/jarsplice to compile it all (libraries included) into one executable jar. (I got an error with the background color being the default color even though I had set it to a different color, so I modified the code that jarsplice uses to launch your program using java rather than the path to java)

于 2012-06-18T05:03:29.677 回答