首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDI - IllegalConnectorArgumentsException:参数无效

JDI - IllegalConnectorArgumentsException:参数无效
EN

Stack Overflow用户
提问于 2014-06-12 05:31:39
回答 2查看 866关注 0票数 1

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

我所做的是有效的:

  1. 使用Eclipse运行两个应用程序。调试器是使用以下VM选项启动的: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
  2. 另一个应用程序连接到端口4000的套接字,并遵循正常过程(断点等)。若要获取本地变量的值,请执行以下操作。
  3. 工作正常,给了我这个价值。

我现在想做的是:

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

代码语言:javascript
复制
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();

该过程已成功启动。但是,当我试图通过第一个进程访问它时,我会得到以下错误:

代码语言:javascript
复制
com.sun.jdi.connect.IllegalConnectorArgumentsException: Argument invalid

在网上查了一下,几乎没有关于什么是例外的信息。

如果你能帮我弄清楚问题出在哪里,我将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-12 06:18:07

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

代码语言:javascript
复制
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();

希望这能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2019-06-24 10:31:36

您错过了以下代码:import com.sun.jdi.connect.IllegalConnectorArgumentsException;

它依赖于jdk/lib/tool.jar,如果将这个jar添加到类路径中,就可以解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24177068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档