我创建了一个可执行的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();
}
}
}
我现在正在尝试从eclipse中调试src.jar。我在调试配置中提供了项目src作为外部项目,但它仍然没有命中我的任何中断点。有没有办法为这样的事情设置一个调试环境?
发布于 2012-03-25 14:01:36
好的,我设法让它工作了。不幸的是,我找不到我在这里使用的示例项目,所以我将尽我所能地解释。考虑上面的这一行-
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的源代码中设置了几个断点,它成功了!
发布于 2012-02-09 11:51:04
Eclipse中调试jar包的方法:
在本例中,jar文件和您的项目在同一进程中运行。
但是当你通过ProcessBuilder运行jar文件时,jar文件是在另一个独立于项目的进程中运行的,当然也独立于eclipse,即jar文件的运行方式与您在命令行中输入'java -jar jarfile‘的方式相同。
https://stackoverflow.com/questions/9205063
复制相似问题