Intellij IDEA 为 java fx 工件生成 html y jnlp
Intellij IDEA generating html y jnlp for java fx artifact
为什么当我使用 Intellij IDEA 为 javafx 应用程序生成工件时,除了 .jar 之外,它还会生成一个 .html 和一个 .jnlp 文件?应用程序是否需要这两个文件?工作,如果没有,我可以更改设置以便不再创建这些设置吗?
各种 JavaFX 执行模式所需的文件
it generates a .html and a .jnlp file?, are those two necessary for the application to work
部署所需的文件取决于您的应用程序 execution mode。
- 如果您的应用程序嵌入在浏览器中(例如像传统的 Java 小程序一样通过 Java 插件执行),那么您需要所有
.html
、.jnlp
和 .jar
个文件。
- 如果您的应用程序是使用 Java deployment toolkit 通过 Webstart 从浏览器启动的,那么您需要所有
.html
、.jnlp
和 .jar
文件。
- 如果您的应用程序是通过 Webstart 从网页通过直接 href link 到 jnlp 文件启动的,那么您只需要
.jnlp
和 .jar
文件。
- 如果您的应用程序作为 "standalone program"(例如 "Users launch it using a Java launcher, such as
java -jar MyApp.jar
, or by double-clicking the application JAR file.")分发,那么您只需要 .jar
文件。
- 如果您的应用程序作为 "self-contained" 应用程序分发,那么您需要
.jnlp
、.html
或 .jar
文件中的 none 个,因为一切都需要运行 您的应用程序将被打包到您将分发的本机安装包(例如 .rpm
、.msi
、.deb
、.dmg
)。
建议的方法
由于您将使用 "standalone program" 形式的分发,因此您只需要 .jar
文件进行分发,可以忽略由 Java 打包工具创建的其他文件。
虽然您可以通过选择 Build | Build Artifacts | Edit... | + | JAR | From modules with dependencies...
让 Idea 将您的应用程序打包为 JAR,但我不建议这样做,因为您还需要在清单中设置一个 main class 并且会丢失使用 Idea 的 "JavaFX Application" 打包类型打包的文件的一些功能,例如内置检测 Java 运行 用于启动应用程序的时间满足 [=91] 的最低要求=] JavaFX 应用程序和透明网络代理支持。
因此,只需不变地使用您已经设置的 Idea 工件打包配置。忽略 .html
文件和 .jnlp
文件输出。只需将 .jar
文件连同有关如何通过 java -jar MyApp.jar
或在 Java 运行 时间后双击 .jar
启动它的说明一起分发给您的用户已经安装在他们的机器上。
便携式构建建议
如果只有你在开发项目,并且不熟悉外部构建工具,如 maven 或 gradle,那么使用你的想法中内置的工件打包功能(可能)更简单 IDE 而不是学习和使用外部工具。
如果您的项目可能由其他开发人员处理,或者要在 Jenkins 等持续集成系统中生成和测试构建,我不建议依赖 IDE 特定的构建系统,例如Idea 中的工件打包器。相反,使用外部构建工具,例如 maven 或 gradle。 JavaFX 版本有一个 maven plugin and a gradle plugin。
为什么当我使用 Intellij IDEA 为 javafx 应用程序生成工件时,除了 .jar 之外,它还会生成一个 .html 和一个 .jnlp 文件?应用程序是否需要这两个文件?工作,如果没有,我可以更改设置以便不再创建这些设置吗?
各种 JavaFX 执行模式所需的文件
it generates a .html and a .jnlp file?, are those two necessary for the application to work
部署所需的文件取决于您的应用程序 execution mode。
- 如果您的应用程序嵌入在浏览器中(例如像传统的 Java 小程序一样通过 Java 插件执行),那么您需要所有
.html
、.jnlp
和.jar
个文件。 - 如果您的应用程序是使用 Java deployment toolkit 通过 Webstart 从浏览器启动的,那么您需要所有
.html
、.jnlp
和.jar
文件。 - 如果您的应用程序是通过 Webstart 从网页通过直接 href link 到 jnlp 文件启动的,那么您只需要
.jnlp
和.jar
文件。 - 如果您的应用程序作为 "standalone program"(例如 "Users launch it using a Java launcher, such as
java -jar MyApp.jar
, or by double-clicking the application JAR file.")分发,那么您只需要.jar
文件。 - 如果您的应用程序作为 "self-contained" 应用程序分发,那么您需要
.jnlp
、.html
或.jar
文件中的 none 个,因为一切都需要运行 您的应用程序将被打包到您将分发的本机安装包(例如.rpm
、.msi
、.deb
、.dmg
)。
建议的方法
由于您将使用 "standalone program" 形式的分发,因此您只需要 .jar
文件进行分发,可以忽略由 Java 打包工具创建的其他文件。
虽然您可以通过选择 Build | Build Artifacts | Edit... | + | JAR | From modules with dependencies...
让 Idea 将您的应用程序打包为 JAR,但我不建议这样做,因为您还需要在清单中设置一个 main class 并且会丢失使用 Idea 的 "JavaFX Application" 打包类型打包的文件的一些功能,例如内置检测 Java 运行 用于启动应用程序的时间满足 [=91] 的最低要求=] JavaFX 应用程序和透明网络代理支持。
因此,只需不变地使用您已经设置的 Idea 工件打包配置。忽略 .html
文件和 .jnlp
文件输出。只需将 .jar
文件连同有关如何通过 java -jar MyApp.jar
或在 Java 运行 时间后双击 .jar
启动它的说明一起分发给您的用户已经安装在他们的机器上。
便携式构建建议
如果只有你在开发项目,并且不熟悉外部构建工具,如 maven 或 gradle,那么使用你的想法中内置的工件打包功能(可能)更简单 IDE 而不是学习和使用外部工具。
如果您的项目可能由其他开发人员处理,或者要在 Jenkins 等持续集成系统中生成和测试构建,我不建议依赖 IDE 特定的构建系统,例如Idea 中的工件打包器。相反,使用外部构建工具,例如 maven 或 gradle。 JavaFX 版本有一个 maven plugin and a gradle plugin。