使用JavaFX部署NetBeans应用程序

使用JavaFX部署NetBeans应用程序,java,javafx,netbeans,Java,Javafx,Netbeans,我试图在NetBeans中构建一个可以部署到用户和最终用户的应用程序。我对部署项目还是相当陌生的,这是迄今为止我做过的最复杂的一个,所以请容忍我。我目前在NetBeans中有一个工作应用程序,它利用JDK15和JavaFX15。只要我在NetBeans内部运行,一切都会按预期运行。我已经到了我想确保我可以在NetBeans之外发布这个应用程序的地步。为此,我进行了一些搜索,找到了以下教程 我能够按照教程构建示例。构建工作在NetBeans中,我可以从命令行运行dist文件夹中的可执行jar文件

我试图在NetBeans中构建一个可以部署到用户和最终用户的应用程序。我对部署项目还是相当陌生的,这是迄今为止我做过的最复杂的一个,所以请容忍我。我目前在NetBeans中有一个工作应用程序,它利用JDK15和JavaFX15。只要我在NetBeans内部运行,一切都会按预期运行。我已经到了我想确保我可以在NetBeans之外发布这个应用程序的地步。为此,我进行了一些搜索,找到了以下教程

我能够按照教程构建示例。构建工作在NetBeans中,我可以从命令行运行dist文件夹中的可执行jar文件,并且可以从文件资源管理器执行jar文件。现在,当我尝试对自己的项目执行相同的过程时,我遇到了以下错误

  • 当我试图在dist文件夹中运行jar文件时,绝对没有发生任何事情
  • 当我尝试使用命令行运行jar文件时
  • java-jar“C:\Workspace\handyVersion1\u 2\dist\handydyVersion1\u 2.jar”

    我收到以下错误:

    错误:缺少JavaFX运行时组件,运行此应用程序需要这些组件


    我目前的假设是,第一个问题是第二个问题的副产品。如果任何人对此问题有解决方案,或者对我可能配置错误的内容有任何想法,请提前告诉我并感谢大家。

    要打包Java桌面应用程序,您应该使用该工具,也可以选择使用该工具。这些将生成一个JRE映像,该映像与应用程序一起打包,并包含您需要的模块


    我怀疑您遇到的问题是JavaFX的本机库不存在。JDK15的大多数发行版不包含JavaFX模块,尽管有些发行版包含JavaFX模块。(请参阅和中JDK的完整和FX捆绑包)。我发现将JDk与JavaFX捆绑在一起使用比在开发过程中管理单独的模块路径更容易,该路径包含JavaFX的jmod文件,但这是另一种选择。这两种方法都可以与jlink一起使用,为包含JavaFX模块的应用程序创建合适的JRE。

    感谢您提供的信息,我将研究这些工具,但这并不能真正回答我的问题。我知道模块不是JDK15本机的,这就是为什么我将JavaFX安装到一个库中,而该库目前正在netbeans中引用。没有这个,我的应用程序就不能在IDE中运行。我的困惑是为什么我可以在IDE中运行应用程序,但不能在IDE之外运行应用程序。IDE在内部做了哪些其他地方没有做的事情?您没有提供足够的信息。这是基于Ant的项目(不推荐)还是基于Maven的项目(更好),还是基于Gradle的项目(也更好)?您的Jar清单是什么样子的?使用了哪些库及其位置?NetBeans可能以不同的方式设置模块路径或类路径,或者将其他参数传递给JVM,例如用于加载本机库的文件夹。