Java 如何为Eclipse应用程序启用远程调试?

Java 如何为Eclipse应用程序启用远程调试?,java,eclipse,eclipse-plugin,eclipse-jdt,eclipse-mars,Java,Eclipse,Eclipse Plugin,Eclipse Jdt,Eclipse Mars,为了使用IntelliJ IDEA作为调试器,我正在尝试为eclipse插件项目启用远程调试 到目前为止,我已经采取了以下步骤: 启动Eclipse 运行->调试配置 创建一个新的“Eclipse应用程序”(比如启动一个本地工作区来加载插件) 将-Xdebug-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n添加到VM参数中 按调试按钮 我得到以下错误: 错误:无法加载此JVM TI代理两次,请检查java命令行中重复的jd

为了使用IntelliJ IDEA作为调试器,我正在尝试为eclipse插件项目启用远程调试

到目前为止,我已经采取了以下步骤:

  • 启动Eclipse
  • 运行->调试配置
  • 创建一个新的“Eclipse应用程序”(比如启动一个本地工作区来加载插件)
  • -Xdebug-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n添加到VM参数中
  • 按调试按钮
  • 我得到以下错误:

    错误:无法加载此JVM TI代理两次,请检查java命令行中重复的jdwp选项。 初始化VM时出错 代理库无法初始化:jdwp

    我应该采取什么步骤让IntelliJ IDEA能够调试运行时工作区中运行的Eclipse插件


    我建议您不要尝试从Eclipse内部启动Eclipse应用程序

    • 将应用程序导出为独立的eclipse应用程序
    • 修改eclipse.ini文件并向'-vmargs'条目添加必要的调试参数
    • 像往常一样启动独立应用程序
    • 将developmenteclipse实例附加到测试应用程序,就像远程调试通常所做的那样
    • 运行->调试配置
    • 在VM参数中添加-Xdebug-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
    这是多余的。使用调试配置已启动应用程序,并将eclipse调试器连接到该进程。如果要通过服务器套接字启用调试,请将其作为运行配置启动

    然后,您可以创建附加的“远程java应用程序”调试配置以附加到该套接字。

    Tomcat配置:-> 默认情况下,远程调试在8000端口进行。如果要更改此设置,请转到catalina.bat文件并更新此行 将JPDA_ADDRESS=localhost:8000设置为所需的端口号。 您还可以在setenv.bat文件中设置此属性。通常这个文件在tomcat中不存在,所以只需创建一个名为 setenv并写入此行set JPDA_ADDRESS=localhost:8000

    现在转到bin目录,然后打开命令promt并编写“catalinajpdastart”。它将使tomcat在调试模式下运行。你可以核实一下 通过看到类似这样的内容“侦听地址为8000的传输dt_套接字”

    1) 蚀

    转到运行->调试配置->远程Java应用程序->单击新的启动配置 然后填写项目、端口(提供与您在tomcat中配置的端口号相同的端口号)、主机(如果您使用的是本地端口,则可以提供 然后本地应用并调试 我正在使用Eclipse2020.09

    2) Intellij Idea:

    转到添加配置->单击+->并选择远程jvm调试->然后给出相同的端口号和名称(任意名称),然后应用


    您尝试过-Xnoagent吗?没有,想详细说明一下吗?为什么要远程调试它?如果您已经可以从eclipse以调试模式启动。@PeterKirschner我正在各个断点打印代码。IntelliJ能够在断点处显示这些变量旁边的变量值。我希望这些值也能打印出来。我不相信这在Eclipse中是可能的。我想使远程调试能够做到这一点。是什么让您认为远程调试将为您提供“本地”调试所没有的东西?最后,这是同样的Debuger基础设施在工作。这不是我需要的;建议的解决方法不能回答我的问题。我需要它从eclipse运行,以便能够动态地更改代码。