ProcessBuilder调试

Viv*_*Rao 4 java process runtime.exec processbuilder

我创建了一个可执行jar并使用另一个java程序的process builder执行它.这是我的代码 -

public class SomeClass {
public static void main(String[] args) {
    Process p = null;
    ProcessBuilder pb = new ProcessBuilder("java", "-jar", "src.jar");
    pb.directory(new File("/Users/vivek/servers/azkaban-0.10/TestApp/src"));
    try {
        p = pb.start();
    } catch(Exception ex) {
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我正在尝试从eclipse调试src.jar.我在调试配置中将项目src作为外部项目提供,但它仍然没有达到我的任何断点.有没有办法为这样的东西设置调试环境?

Viv*_*Rao 5

好的,所以我设法让这个工作.不幸的是,我找不到我用于此的示例项目,所以我会尝试解释我能做的最好的.从上面考虑这一行 -

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "src.jar");
Run Code Online (Sandbox Code Playgroud)

我需要做的就是添加Xdebug作为参数 -

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005", "src.jar");
Run Code Online (Sandbox Code Playgroud)

然后我在eclipse中创建了一个调试环境,将端口设置为5005并在jar的源代码中设置了几个断点,它就可以工作了!