java - 在 Eclipse 中调试远程 Java 应用程序时如何定义参数?

标签 java linux eclipse debugging remote-debugging

我正在尝试使用参数在 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/

相关文章:

java - 我如何保证线程在终止时安全地解锁锁,而所有方法都已经处理了该锁?

python - 将 os.popen 命令转换为 subprocess.Popen 实例

linux - 如何用新的标题和结尾字符串替换目录中所有文件的标题和结尾,但仅限于特定字符?

java - Eclipse,无法解决

android - eclipse/android 项目 - 更改包名称时出现文件编码问题

eclipse - 运行 Liferay 模块时 Bean 创建异常

java - Matlab Java 互操作性

java - 基于这个或那个的正则表达式

java - 生成器模式: nested objects created through other builders

linux - 使用 Device::SerialPorts 在 Linux 中编程串口