eclipse - 如何使用 Eclipse IDE 调试基于 JavaFX 11 的 Maven 项目 (2019-03)
问题描述
问题:我无法调试基于 JavaFX 11 的 Maven 项目,该项目是使用 Eclipse IDE 2019-03 (4.11.0) 使用此处建议并在相关问题中使用的方法编写和启动的。
示例代码:
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();
}
}
如果我Eclipse
在方法的第一行start()
(分配变量的地方)设置断点,应用程序应该在该点停止运行,这不会发生;相反,应用程序继续运行,就好像断点不存在一样。
此处和上面提到的问题的底部附近提出了一个解决方案,但它们都需要一种与 OpenFX 建议的非常不同的启动方法。
在此先感谢您提供任何有用的提示!
解决方案
我仍然不明白为什么人们让事情变得如此复杂。即使使用最新的 JDK 和 JFX,只需创建运行配置即可在 Eclipse 中运行或调试程序的旧方法仍然很有效。(我对两者都使用 15 EA)。只有两个简单的步骤。
在上面的示例文件末尾添加以下代码行。这将允许您完全忽略所有模块系统的废话。
...
class HowdyJFXLauncher {public static void main(String[] args) {HowdyJFX.main(args);}}
在 Eclipse 包资源管理器中选择类并右键单击它。在上下文菜单中选择“调试为”,然后在以下选项菜单中选择上面介绍的启动器而不是主程序,然后单击确定。这将像往常一样在调试器中启动程序。这适用于没有任何插件或其他东西的 Maven 和非 Maven 程序。如果您有 module-info.java,请将其删除。在这种情况下,您可能必须重建您的项目,以便正确设置类路径。
我每天都以这种方式工作,并且总是想知道为什么人们让事情变得如此复杂。
推荐阅读
- c++ - 如何使用我的函数类删除动态数组?
- javascript - 做了一个循环来检查所有 inputArrs 但它只检查第一个
- r - 带有 RMarkdown 的 RMarkdown 演示,无需评估和打印 `
- c# - 如何使用 c# razor 模板构建链接以导航到 2sxc 应用程序内的父页面?
- css - 在网格项目组件 MaterialUI 上创建 onHover 时遇到问题
- postgresql - 通过 psql (SQL Shell) 来自 PostgreSQL 的 ERM
- c - 如何在 c 中可视化 fork()
- python - 返回一个项目列表,其中没有任何相邻的具有相同值的元素
- sql - Postgres:获取与组中其他列的最大值对应的列的值
- amazon-web-services - 如何设计 DynamoDB 表架构