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

时间:2019-06-11 21:26:27

标签: eclipse maven javafx

问题:我无法调试基于JavaFX 11的Maven项目,该项目使用Eclipse IDE 2019-03(4.11.0)使用建议的here并在{{3 }}。

示例代码:

Exception in thread Thread-1:
Traceback (most recent call last):
File "/home/me/project/gce/cloud_handler.py", line 163, in write_log
.execute(http=http)
File "/home/me/.local/lib/python3.5/site- 
packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/me/.local/lib/python3.5/site- 
packages/googleapiclient/http.py", line 851, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting 

如果我在returned "field [name] has issue [Invalid project resource name]"> 方法的第一行(分配了变量)上设置了一个 def write_log(self, record): {...} try: print(type(self.client)) resp = self.client.projects().logs().entries().write( projectsId=self.project_id, logsId=self.logname, body=body)\ .execute(http=http) #ERROR HAPPENS HERE except Exception as e: sys.stderr.write(e.message + '\n') 断点,则应用程序应该在该点停止运行。不会发生吗?而是继续运行该应用程序,就像断点不在那里一样。

建议related question并在here的底部附近找到解决方案,但是这两者都需要与question referenced above完全不同的启动方法。

在此先感谢您提供有用的提示!

2 个答案:

答案 0 :(得分:0)

您可以通过将以下内容添加到pom.xml文件中来调试Javafx应用程序

  --conf "spark.dynamicAllocation.enabled=false" \

此运行之后,执行具有目标的maven运行配置

清理javafx:run

enter image description here

在此之后您应该看到

收听地址为8001的运输dt_socket

在控制台中

此后,您需要在端口8001上启动调试 enter image description here

这应该启动您的应用程序并在调试断点处停止

答案 1 :(得分:0)

我仍然不明白为什么人们使事情变得如此复杂。即使使用最新的JDK和JFX,通过创建运行配置在Eclipse中运行或调试程序的旧方法仍然可以发挥作用。 (我都使用15 EA)。只有两个简单的步骤。

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

...

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

在Eclipse包资源管理器中选择类,然后右键单击它。在上下文菜单中选择“调试为”,然后在以下选项菜单中选择上面介绍的启动器而不是主程序,然后单击“确定”。这将照常在调试器中启动程序。这适用于没有任何插件或其他内容的Maven和Non-Maven程序。如果您有module-info.java,请将其删除。在这种情况下,您可能必须重新构建项目,以便正确设置类路径。

我每天都这样工作,并且总是想知道为什么人们把事情变得如此复杂。