【问题标题】:Debugging Remote Java Application -调试远程 Java 应用程序 -
【发布时间】:2025-11-30 04:40:01
【问题描述】:

我正在尝试调试 java 应用程序。我关注了this steps

错误:

   Failed to connect to remote VM. Connection refused.
   Connection refused: connect

程序:

   package test;

   public class test {

   public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("Got");
   }
  }

步骤:

 Eclipse --> Run --> Debug Conf --> connect tab  --> test is project name 
 --> host is localhost --> port is 8000 --> Socket Attach --> Apply --> 
 Debug under common tab --> apply

它向我显示了那个错误。然后我检查了以下内容

ping localhost - Works
telnet localhost 8000 - connection refused
netstat -tna | grep 8000 - no process is listening

我如何做到这一点?我还应该修改什么?或者还有其他方法可以实现吗?

主机:本地主机窗口

【问题讨论】:

    标签: java eclipse remote-debugging


    【解决方案1】:

    如果您想连接到远程应用程序,该应用程序必须以“调试”模式启动。否则你将无法连接。

    您必须为此设置 -xdebug 选项,并确保您的应用程序在连接时以某种方式可用。

     -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
    

    然后你就可以连接了。

    如果您可以在 eclipse 中启动您的程序,那就容易多了。只需使用

    • 右键单击您要开始的课程(您的主课程)
    • 调试为 --> java 应用程序

    【讨论】:

    • 谢谢里亚。我想从我的 ubuntu 调试一个在我的 windows 机器上运行的程序。在此之前,我没有任何远程调试的经验。所以我写了一个简单的java程序,这是我的问题,我想从我的windows机器调试它[程序也在同一个windows - eclipse]作为调试远程应用程序。如何做到这一点,而不是从 Eclipse 中做到这一点?
    • 如何启动程序?是 jar 还是从命令行运行?
    • 尝试使用附加参数 java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 NameOfYourClass 运行它。当程序启动(但尚未完成)时,按照您描述的方式连接远程调试器。
    • ok Ria 8000 端口是什么意思?什么节目会在那里收听?我不明白这部分。
    • 这是端口,您将能够与调试器连接。 8000 是一个标准值,但您可以将其更改为您喜欢的任何未使用的端口。