我正在尝试使用参数在 Linux 环境中调试远程 Java 应用程序。但是,我只能在调试 [本地] Java 应用程序时找到定义参数的选项。我试图定义的参数是 java -Dsun.awt.disablegrab=true
以避免在事件处理程序中调试时系统挂起。鉴于此应用程序的性质,我无法在本地启动它;我只能将其作为远程Java应用程序进行调试,并将主机定义为localhost。有没有办法使用上述参数为远程 Java 应用程序启动调试?
提前感谢大家!
最佳答案
为了允许打开用于远程调试的端口,应用程序(或其服务器)的启动将已经使用 Java 命令行参数进行参数化,例如类似以下内容:
-Djava.compiler=NONE -Xdebug -Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=[your desired port]
当您在 Debug模式下启动进程时,我会简单地将您想要的参数添加到列表中。
在哪里可以找到启动配置取决于您正在运行的应用程序类型。
由于您可能已经知道要连接的端口,您可能希望在目标机器(即在您的本地机器,在这种特定情况下)的配置文件中 grep
它 - 即可能会让您了解需要更改哪些资源。
澄清
这里的想法是,您的本地 Eclipse 在远程调试时不会启动应用程序,它只连接到您自己定义的套接字,并有一个开放端口连接到您的目标机器。
因此,它取决于您的应用程序的启动配置(即 java
进程在启动您的应用程序时如何参数化)来定义远程调试的套接字(如果需要),以及您可能需要的任何启动参数想。
关于java - 在 Eclipse 中调试远程 Java 应用程序时如何定义参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51948961/