当前位置: 首页 > 知识库问答 >
问题:

使用Run/debug配置在IntelliJ IDEA中运行JavaFX 11 Maven项目

莘昊
2023-03-14

我想使用来自IntelliJ IDEA的Maven运行一个HelloWorld JavaFX11应用程序,使用run/debug配置来调试应用程序。

我使用pom.xml和hellofx.java在IntelliJ IDEA中创建了一个Maven项目。我可以成功地构建项目并运行它,执行指定的compileexec:java目标。

运行它的唯一方法是下载JavaFX运行时,并将VM选项设置为--module-path/path/to/javafx-sdk-11/lib-add-modules=JavaFX.controls

但是有没有办法使用从Maven下载的工件来运行它呢?正如我所认为,IntelliJIDEA可以在运行时使用Maven工件。还是我弄错了什么?

附注。我知道这个答案,但它并没有描述我想做什么。

共有1个答案

壤驷经国
2023-03-14

我想我可能终于想出了解决办法。

我假设您正在使用Maven导入javafx-maven-plugin和javafx-controls依赖项,就像我试图做的那样(最终,Jona303的答案没有解决),并且您在尝试使用javafx:run运行它时遇到了问题/麻烦。

这个解决方案不需要使用--add-exports和其他东西,实际上是相当简单的。使用适当的、基于Java的main方法创建一个额外的类(我将我的类称为“Launcher”)。然后,在类中,从那里启动应用程序,如下所示:

public class Launcher {

    public static void main(String[] args) {
        Application.launch(App.class, args);
    }

}

应用程序类

public class App extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        // app code
    }

}

我很确定这个问题是由于IntelliJ试图变得“聪明”,启动一个没有main方法的应用程序,直接跳转到start方法引起的。但通过这样做,它在某种程度上避免了添加Maven依赖项,并导致它失败。当您这样做时,它会迫使IntelliJ说“好吧,我们需要maven依赖项,然后我们可以运行它”,正确地启动它(因为它不知道它是一个JavaFX项目)。但那只是猜测。我只知道它对我有用。

我花了很长时间才弄清楚这一点,但一旦我将运行配置设置为使用Launcher类而不是App类启动,所有的一切就像一个魅力一样无缝运行(甚至调试也能工作!)。

希望这对你有帮助,祝你编码愉快!:)

 类似资料:
  • 创建和使用运行配置 “运行配置”对话框允许您创建多个运行配置。 每个运行配置都可以启动应用程序。 可以通过从“运行”菜单中选择“运行配置”菜单项来调用“运行配置”对话框。 要为Java应用程序创建运行配置, 请从左侧的列表中选择Java Application ,然后单击New按钮。 在主选项卡中出现的对话框中指定 - 运行配置的名称。 项目名称。 主类的名称。 在参数选项卡中指定 - 零个或多个

  • 问题描述 比如我第一次拉取pig仓库的代码,此时运行配置列表是有几个已经定义好的服务启动配置的,这是怎么做到的呢? 现在我想加一个PigCodeGenApplication代码生成的配置启动类,在别人拉取git代码的时候也能显示出来,该在哪里配置? 我目前只在.idea本地目录下,发现workspace.xml文件有这么一些配置。

  • 创建和使用 Eclipse 运行配置 在运行配置(Run Configuration)对话框中可以创建多个运行配置。每个配置可以在应用中启用。 运行配置(Run Configuration)对话框可以通过 Run 菜单中选择 Run Configurations 来调用。 如果要给 Java 应用创建运行配置需要在左侧列表中选择 "Java Application" 并点击 New 按钮。 对话框

  • 为什么在使用时会出现这个错误? 错误2014-03-03 13:31:30,283[localhost-startStop-1]错误context.grailsContextLoader-初始化应用程序时出错:创建名为“Transaction ManagerPostProcessor”的bean时出错:bean初始化失败;嵌套异常是org.springframework.beans.factory

  • 问题内容: 由于本地网络的配置,我必须在docker运行命令中添加–dns和–dns-search选项,如下所示: 是否有一个环境变量或配置文件,可以在其中添加DNS选项,这样我就不必在每次运行容器时都键入它们? 我正在Windows主机上运行的VMware VM上运行的Ubuntu 16.04上使用docker。 谢谢。 问题答案: 您可以将这些选项添加到docker守护程序中,作为它运行的所有

  • Intellij IDEA用不良行为把我逼疯了: 我有一个(基于Gradle的)项目,有两个用Java编写的主要类,每个类都在自己的包中。 一个叫"HelloFX" 一个叫"ImageView示例" 两者都使用JavaFX,因此需要一些特殊的“运行配置”。 为了“HelloFX” 对于“ImageViewExample” 配置是相同的,在这两种情况下(这将是很好的,不必处理一个巴洛克式复杂的文本框