gpt4 book ai didi

java - JDI - IllegalConnectorArgumentsException : Argument invalid

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:35 26 4
gpt4 key购买 nike

我正在使用 JDI 调试另一个正在运行的 java 应用程序。

我所做的有效:

  1. 使用 Eclipse 运行两个应用程序。调试器使用以下 VM 选项启动:

    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
  2. 另一个应用程序连接到端口 4000 处的套接字,并遵循正常过程(断点等)来获取局部变量的值。

  3. 工作正常并给我带来了值(value)。

我现在想做的事情:

我没有使用 Eclipse 启动两个进程,而是在 Eclipse 中启动一个进程,并且该 Process 使用 ProcessBuilder 使用以下参数启动另一个进程:

String[] args1 = {getJavaDir(),"-cp",classpath,"-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000", "processII.Main2"};
ProcessBuilder builder = new ProcessBuilder(args1);
builder.directory(directory);
Process process = builder.start();

进程成功启动。但是,当我尝试通过第一个进程访问它时,出现以下错误:

com.sun.jdi.connect.IllegalConnectorArgumentsException: Argument invalid

在网上查了一下,关于异常是什么的信息很少。

如果您能帮助我找出问题所在,我将不胜感激!

最佳答案

当调试 JVM 的连接器参数出现错误时,会抛出此异常。我认为您的调试参数必须一起放在同一个参数中,而不是两个单独的参数(将 -Xdebug-Xrunjdwp... 放在同一个参数上),尝试使用:

String[] args1 = {getJavaDir(),"-cp",classpath,"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000", "processII.Main2"};
ProcessBuilder builder = new ProcessBuilder(args1);
builder.directory(directory);
Process process = builder.start();

希望这有帮助,

关于java - JDI - IllegalConnectorArgumentsException : Argument invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24177068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com