我正在尝试使用参数在Linux环境中调试远程Java应用程序。但是,我只能在调试[local] Java应用程序时找到用于定义参数的选项。我尝试定义的参数是java -Dsun.awt.disablegrab=true
,以避免在事件处理程序中进行调试时系统挂起。鉴于此应用程序的性质,我无法在本地启动它;我只能将其调试为远程Java应用程序,并将主机定义为localhost。是否可以使用上述参数为远程Java应用程序启动调试?
谢谢大家!
答案 0 :(得分:1)
为了允许打开端口以进行远程调试,应用程序(或其服务器)的启动将已经使用Java命令行参数进行了参数设置,例如符合以下条件的
-Djava.compiler=NONE -Xdebug -Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=[your desired port]
在调试模式下启动进程时,我只是将所需参数添加到列表中。
在何处找到启动配置将取决于您正在运行的应用程序的类型。
由于您可能已经知道要连接的端口,因此您可能想在配置文件中,目标计算机中(例如,在本机中为本地计算机)grep
-可能会给您一个想法,您需要对哪些资源进行更改。
说明
这里的想法是,本地Eclipse在远程调试时不会启动应用程序,它仅连接到您自己定义的套接字,并带有开放端口以连接到目标计算机。
因此,它取决于应用程序的启动配置(即,在启动应用程序时如何设置java
过程的参数),以定义用于远程调试的套接字(如果需要)以及您可能需要的任何启动参数。