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

如何使用Eclipse IDE调试基于JavaFX11的Maven项目(2019-03)

公冶龙野
2023-03-14

示例代码:

public class HowdyJFX extends Application {

     @Override
     public void start(Stage primaryStage) throws Exception {
          final String javaVersion = System.getProperty("java.version");
          final String javafxVersion = System.getProperty("javafx.version");
          final Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
          final Scene scene = new Scene(new StackPane(l), 640, 480);
          primaryStage.setScene(scene);
          primaryStage.show();
      }

     public static void main(String[] args) {
         launch();
     }
}

如果我在start()方法的第一行(其中分配了变量)设置了eclipse断点,那么应用程序应该在该点停止运行,这不会发生;相反,应用程序继续运行,就好像断点不在那里一样。

这里提出了一个解决方案,并且接近上面提到的问题的底部,但是这两个方法都需要一个与OpenFX建议的方法非常不同的启动方法。

提前感谢任何有用的提示!

共有1个答案

尹晟
2023-03-14

我还是不明白为什么人们把事情弄得这么复杂。即使使用最新的JDK和JFX,在Eclipse中通过创建运行配置来运行或调试程序的旧方法仍然非常有效。(两者我都使用15个EA)。只有两个简单的步骤。

在上面示例文件的末尾添加以下代码行。这将允许您完全忽略所有模块系统废话。

...

class HowdyJFXLauncher {public static void main(String[] args) {HowdyJFX.main(args);}}

在Eclipse package explorer中选择该类并右键单击它。在上下文菜单中选择“Debug as”,在下面的选项菜单中选择上面介绍的启动器而不是主程序,然后单击OK。这将像往常一样在调试器中启动程序。这适用于没有任何插件或其他东西的Maven和非Maven程序。如果您有一个模块-info.java,请删除它。在这种情况下,您可能必须重新构建项目,以便正确设置类路径。

 类似资料:
  • 我习惯于使用Maven分发项目,通常,团队中的每个人(以及CI服务器)都可以依赖Maven进行打包、测试、运行等调试,但是,项目可以导入到Eclipse并通过主类启动(与Eclipse的Maven插件相反)。Spring-Boot就是一个很好的例子。导入这样的项目后,我可以只运行或调试主类。 然而,对于JavaFX11来说,编写一个配置所有必要依赖关系的pom.xml似乎很有效,但是当我将这样一个

  • 我正在学习使用Maven在Eclipse中构建Java项目。我从文件夹中的“maven archetype quickstart”模板创建了一个Java项目。然后,为了将Maven项目转换为支持EclipseIDE,我导航到项目文件夹并发出命令: 和。 然后我在Eclipse中导入了该项目,并进行了必要的Eclipse配置,比如在Eclipse类路径中设置Maven本地存储库。现在,该项目位于文件

  • 我将计划将我基于Spring的java项目转换成maven项目,所以在这个对话中,我应该遵循什么样的项目结构和配置

  • 有没有一种方法可以像使用Maven调试Java应用程序那样调试测试?例如,如果我在步骤的实现中设置了断点,然后用CL: 我得到了下一个错误: 我试图运行下一个,它的工作: 怎么了?环境: 谢谢你的回答!

  • 我今天花了几个小时在谷歌上搜索大多数解决方案都过时了。我在项目所遵从的窗口上使用eclipse,但我无法使它成为一个独立的应用程序,如果没有: 有哪些方法可以将JavaFX11项目导出到可执行jar中,而无需在导出后将其链接到JavaFX-SDK-11.0.2? 谢了。

  • 我查看了文档,没有找到这样做的方法。有没有办法告诉gradle idea任务创建目录项目结构()而不是项目/模块文件()?