成为“ NetBeans 74 NewAndNoteworthy ”页面的NetBeans 7.4的新功能之一是“本机打包 ”,在该页面上被描述为“ JavaSE项目现在支持使用JavaFX提供的本机打包技术来创建本机包。 ”
我将使用一个非常简单的示例来演示NetBeans 7.4中的本机打包功能。 下一个代码清单用于此增强的Hello World示例。
增强型HelloWorld.java
package dustin.examples;import static java.lang.System.out;/*** Slightly enhanced "Hello World" example.* * @author Dustin*/
public class EnhancedHelloWorld
{/*** Main function.* * @param args the command line arguments; name being addressed, if any.*/public static void main(String[] args){final String addresseeName = args.length > 0 ? args[0] : "World";out.println("Hello, " + addresseeName);}
}
下图显示了NetBeans 7.4源代码编辑器中的相同代码。
要使用本机打包功能,我可以右键单击该项目,然后选择“属性”,如下图所示。
单击“属性”将导致“项目属性”窗口的出现。 如下一个屏幕快照所示,此窗口允许开发人员展开“构建”,选择“部署”,并选中“在项目菜单中启用本机打包操作”标签旁边的框。 选择此选项会将NetBeans 7.4配置为支持该NetBeans项目的本机打包。
启用NetBeans 7.4本机打包后,我现在可以右键单击该项目,并使用一个名为“打包为”的新选项。 当我选择“打包为”选项时,我看到以下选择:“所有工件”,“所有安装程序”,“仅映像”,“ EXE安装程序”和“ MSI安装程序”。 请注意,我的NetBeans 7.4 IDE在Windows计算机上运行,因此EXE和MSI 安装程序很有意义。 Deploying JavaFX Applications文档的 6.4.1和6.4.2节分别介绍了EXE和MSI安装程序包。
当我选择EXE作为安装程序包时,我看到它根据IDE右下角的消息处理本地打包。 这显示在下一个屏幕快照中。
第一次尝试此操作时,我遇到了NetBeans报告的错误,并显示以下消息:“ JavaFX本机打包程序需要安装外部Inno Setup 5+工具并包含在PATH中才能创建EXE安装程序。 参见http://www.jrsoftware.org/。 转到引用的Jordan Russell软件站点,可以下载Inno Setup 5.5.4 (isetup-5.5.4.exe)。 就我而言,我下载了自解压EXE并运行了它。 然后,我将安装Inno Setup 5.5.4的目录的完整路径添加到PATH
环境变量中,然后重新启动NetBeans 7.4。
在我的系统上安装了Inno Setup的情况下,当选择NetBeans的EXE本机打包时,Inno Setup 5.5.4安装程序编译器将运行。 NetBeans和Inno安装程序完成后,项目目录中将存在一个较大的EXE文件,如下面的屏幕快照所示。
我当然可以通过在命令提示符下键入其名称来运行此可执行文件。 下一个屏幕快照演示了运行此可执行文件会导致一个弹出窗口,要求您批准安装Java应用程序。
单击“安装”按钮后,安装开始,这将在下一个屏幕快照中演示。
可执行文件安装程序将Java应用程序安装为另一个可执行文件。 在这种情况下,此应用程序将安装在C:\Users\Dustin\AppData\Local\EnhancedHelloWorld
,如下面的屏幕快照所示。
上面的屏幕快照中显示的生成的目录包括一个“运行时”目录,其中包含即使在未安装JRE的计算机上运行该应用程序所必需的JRE。 Java应用程序本身以JAR的形式存储在“ app”目录中。 这两个子目录都显示在接下来的两个屏幕快照中。
生成的目录包括两个.exe
文件。 一个是EnhancedHelloWorld.exe
,它是Java应用程序可执行文件。 另一个.exe
文件是unins000.exe
。 运行后一个.exe
文件会从计算机上完全卸载该应用程序。
下一个屏幕快照显示,除了单击生成的可执行文件之外,我还可以从Window Start启动应用程序。
尽管我开始使用的Java代码示例可以使用NetBeans 7.4构建为可执行应用程序,如本文中所示,但是使用带有用户界面的Java应用程序会更加有趣。 例如,可以使用基于Java类HelloWorldSwing的 NetBeans 7.4构建可执行应用程序。
我在本文中的示例完全是Java SE(没有JavaFX),但是利用了NetBeans 7.4通过为JavaFX部署生成的机制对本机打包的支持。 因此,有关自包含应用程序打包的JavaFX文档对于理解可用选项也就不足为奇了。 NetBeans 7.4的本机打包也在NetBeans IDE的本机打包中得到了演示。
翻译自: https://www.javacodegeeks.com/2013/11/native-java-packaging-with-netbeans-7-4.html