eclipse:以编程方式启动进程

我是通过eclipse中的另一个java进程以编程方式执行java进程的:

Process process = Runtime.getRuntime().exec(command, envp, dir); 

有没有办法告诉eclipse调试子进程?

或者,我可以通过在完成启动过程B上链接多个启动配置(即启动过程A)来解决此问题 – 提供的B可以在调试模式下启动。

如果在Eclipse中使用“远程调试”function,则可以将其指向任何JVM实例。 您只需要确保告诉每个实例使用唯一的JDWP端口。 这是您从命令行执行此操作的方式:

 java -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y 

因此,将“地址”部分更改为您想要的任何端口,然后您可以将Eclipse指向该端口。 以下是一些更多信息:

http://java.dzone.com/articles/how-debug-remote-java-applicat

向子进程添加命令行选项,如下所示:

 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9999 

(您可以使用不同于9999的端口号,这取决于您,但最好选择1024以上的数字)

然后在Eclipse中,创建“远程Java应用程序”类型的调试配置。 将主机设置为localhost,将端口设置为9999。

这篇developerWorks文章提供了大量额外信息。

编辑:顺便提一下,为了更灵活地指定子进程的命令行和环境,请使用java.lang.ProcessBuilder类而不是Runtime.exec(...)