Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Netbeans从JavaFX11应用程序生成.exe和.app_Java_Javafx_Netbeans - Fatal编程技术网

如何使用Netbeans从JavaFX11应用程序生成.exe和.app

如何使用Netbeans从JavaFX11应用程序生成.exe和.app,java,javafx,netbeans,Java,Javafx,Netbeans,我使用以下工具开发了一个javaFx应用程序: OpenJDK 11 上网本10 JavaFX11 按照javafx11说明()我创建了一个自包含的应用程序 不幸的是,启动应用程序需要一个长命令。大概是这样的: dist/jlink/HelloFX/bin/java -m hellofx/org.openjfx.MainApp 这不是最终用户的最佳选择 我的问题是: 如何创建易于分发和启动的.exe(Windows)和.app(macOS) 如何为应用程序添加图标(现在应用程序显示经典j

我使用以下工具开发了一个javaFx应用程序:

  • OpenJDK 11
  • 上网本10
  • JavaFX11
按照javafx11说明()我创建了一个自包含的应用程序

不幸的是,启动应用程序需要一个长命令。大概是这样的:

dist/jlink/HelloFX/bin/java -m hellofx/org.openjfx.MainApp
这不是最终用户的最佳选择

我的问题是:

  • 如何创建易于分发和启动的.exe(Windows)和.app(macOS)
  • 如何为应用程序添加图标(现在应用程序显示经典java cup图标)
我找不到任何更新的方向


谢谢。

编译可执行JAR文件,然后使用工具将其转换为EXE

有几种方法可以做到这一点:

是其中之一


另一个选项可以是

您可以提供一个
.bat
响应。包含命令的
.sh
文件。脚本充当可执行文件too@Stultuske独立的应用程序(通过
jlink
)已经是特定于平台的;它将包含JavaFX和JDK模块,这些模块具有特定于平台的本机代码。我得到的印象是,Java生态系统正在向封装在本机可执行文件中用于部署的自包含应用发展。我所看到的一切都表明,现在部署JavaFX应用程序需要为每个目标平台提供不同的软件包。请注意,Java代码仍然是跨平台的。@Stultuske:通过我遵循的过程,我得到了一个jar和一个包含大量不同文件的目录。这不容易分发、安装和运行。此外,javaFX已经要求包含依赖于平台的jmod。@Lino。不幸的是,我认为这是唯一的选择。这意味着我必须将一个jar与一堆其他文件一起分发。但是,BAT或.SH并不完全是用户友好的。你有没有办法考虑使用Gealle作为你的项目?NetBeans 10有一个内置任务来运行
jlink
,但不用于(传入的)
jpackage
工具。用Ant做这件事并不是很吸引人……Jar2Exe不是免费的。我只有一个应用程序要分发。Launch4j看起来很有希望,但不清楚如何管理我用上述过程创建的jar文件和jre目录。有什么线索吗?您只需要将可执行jar文件放入“jar”并设置输出文件。然后,在标题部分,确保选择了“GUI”。有更多的选项可供选择,但只有使用上面的几个选项,您才能单击齿轮图标并获得结果EXE。不幸的是,它不能以这种方式工作。当我运行exe时:“此应用程序被配置为使用捆绑的Java运行时环境,但运行时丢失或损坏。”请确保不使用捆绑的JRE,您可以在JRE选项卡中进行检查。顺便说一句,我不能包含任何其他内容,因为答案只有在链接和页面存在时才有效,如果页面或程序不再存在,你就不能将此答案视为有效答案,你需要寻找其他程序。