java - ProcessBuilder调试

标签 java process runtime.exec processbuilder

我创建了一个可执行 jar 并使用来自另一个 java 程序的进程构建器执行它。这是我的代码-

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();
    }
}

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

最佳答案

好的,所以我设法让它工作了。不幸的是,我找不到我用于此的示例项目,所以我会尽力解释。 从上面考虑这条线 -

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "src.jar");

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

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

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

关于java - ProcessBuilder调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205063/

相关文章:

java - 强制关闭 notes.java (sharedpreferences)

java - 默认情况下,使用 java 8 运行 Java jar 会强制使用 TLS1.2 吗?

Java从.bin文件转换为.txt加载

c++ - 什么是进程和线程?

java - 在 Runtime.exec() 中运行执行文件并获取用户输入

java - 在 spring 中创建同名的替换休息 Controller 会导致 bean 名称冲突?

c# - .NET - WindowStyle = hidden 与 CreateNoWindow = true?

javascript - Node.js 进程什么时候会意外死亡?

java - 为什么 Runtime.exec(String) 对某些但不是所有命令有效?

java - 从另一个 java 程序运行 java 程序