我正在使用JDI调试另一个正在运行的java应用程序。
我所做的是有效的:
我现在想做的是:
我没有使用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在网上查了一下,几乎没有关于什么是例外的信息。
如果你能帮我弄清楚问题出在哪里,我将不胜感激!
发布于 2014-06-12 06:18:07
当连接器参数出现错误以调试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();希望这能帮上忙
发布于 2019-06-24 10:31:36
您错过了以下代码:import com.sun.jdi.connect.IllegalConnectorArgumentsException;
它依赖于jdk/lib/tool.jar,如果将这个jar添加到类路径中,就可以解决问题。
https://stackoverflow.com/questions/24177068
复制相似问题