hel*_*rld 6 java netbeans javafx java-17 netbeans-13
我在尝试使用 Netbeans 13 生成 .exe 文件时遇到了这个问题。(打包为 -> exe 安装程序)
完整错误:
C:\Users\*\Documents\NetBeansProjects\*\nbproject\build-native.xml:428: The following error occurred while executing this line:
C:\Users\*\Documents\NetBeansProjects\*\nbproject\build-native.xml:436: Unable to create javax script engine for javascript
BUILD FAILED (total time: 4 seconds)
Run Code Online (Sandbox Code Playgroud)
有谁知道这里似乎有什么问题以及如何解决它?
更新:
操作系统:Windows 10
JavaFX:javafx-sdk-17.0.2
JDK:jdk-17.0.2
我在期待什么?
确实不需要发布代码,因为构建项目和运行项目本身都很顺利(没有错误)。尝试使用 Package As -> EXE Installer 生成 .exe 安装程序文件后出现问题(如图所示):
您可以返回查看完整错误,当我打开 build-native.xml 文件时,它会将我指向以下代码行:
<target name="-jfx-copylibs" depends="init,compile,-pre-pre-jar,-pre-jar,-jfx-copylibs-warning" unless="fallback.no.javascript">
<jfx-copylibs-js-impl/>
</target>
<target name="-jfx-copylibs-warning" if="fallback.no.javascript">
<echo message="Warning: Dependent Libraries copy (-jfx-copylibs) skipped in fallback build mode due to JDK missing JavaScript support."/>
</target>
<macrodef name="jfx-copylibs-js-impl">
<sequential>
<local name="run.classpath.without.build.classes.and.dist.dir"/>
<pathconvert property="run.classpath.without.build.classes.and.dist.dir">
<path path="${run.classpath}"/>
<map from="${basedir}${file.separator}${build.classes.dir}" to=""/>
<map from="${basedir}${file.separator}${dist.jar}" to=""/>
<scriptmapper language="javascript">
Run Code Online (Sandbox Code Playgroud)
其中第 428 行是:
<target name="-jfx-copylibs" depends="init,compile,-pre-pre-jar,-pre-jar,-jfx-copylibs-warning" unless="fallback.no.javascript">
<jfx-copylibs-js-impl/>
Run Code Online (Sandbox Code Playgroud)
第 436 行是:
<pathconvert property="run.classpath.without.build.classes.and.dist.dir">
Run Code Online (Sandbox Code Playgroud)
您尝试做的事情根本不会按照您尝试做的方式进行:
NetBeans Package as EXE 工具(当前)已过时。
它不适用于现代 Java 和 JavaFX 版本。
它使用 JDK 中的 JavaScript,该 JavaScript 在JDK 15中已从 JDK 中删除。
它使用javafxpackager 工具和 ant javafx 任务,这些任务在 JDK 中已不再存在,并在 JDK 16 中被jpackage取代。
它依赖于将 JavaFX 打包在类路径上的一个大 jar 中,这是自Java 11以来不受支持的执行配置,当时 JavaFX 从 Oracle JDK 发行版中删除并作为一组模块分发。
它依赖于现已过时的第三方 Wix 和 InnoSetup 软件版本。
本教程需要审核。您可以打开 JIRA 问题,或按照这些贡献指南在 GitHub 中编辑它。
需要审查的原因是,该功能无法像当前在 NetBeans 中针对最新 Java 和 JavaFX 版本实现的那样工作。如果您可以获得兼容的第 3 方软件来支持其使用,它可能适用于 Oracle 过时的 Java 8 版本。您可能需要编写应用程序以使用 Oracle Java 8,并需要 IDE 和应用程序构建过程在 Oracle Java 8 下运行(这对于最新的 NetBeans 版本可能无法实现)。
对于替代方案,请研究JavaFX 标记中的打包资源。
| 归档时间: |
|
| 查看次数: |
15840 次 |
| 最近记录: |