我正在使用Eclipse的外部工具功能来启动我的测试服务器(我不能使用普通的服务器视图,因为它不受支持)。
这样可以正常工作,但是我无法单击堆栈跟踪以自动跳转到代码中的那一行(正如您通常所做的那样)。我一直认为eclipse的控制台会自动识别代码行。
有没有办法让它为外部工具做到这一点?
由于
答案 0 :(得分:1)
您可以将堆栈跟踪复制到Java Stack Trace控制台。在控制台中,切换到新的Java堆栈跟踪控制台,粘贴堆栈跟踪,它将立即可单击。
另外,查看LogViewer plugin,据我所知,它可以用更少的努力来做到这一点
答案 1 :(得分:1)
作为一种解决方法,我创建了一个简单的Java包装程序,该程序执行作为参数给出的命令。这样可以使用Eclipse Java运行配置代替外部工具。
public class Exec {
private final Process process;
private boolean error;
public Exec(Process process) {
this.process = process;
}
public static void main(String[] command) throws Exception {
new Exec(Runtime.getRuntime().exec(command)).run();
}
public void run() throws Exception {
Thread thread = new Thread(() -> copy(process.getInputStream(), System.out));
thread.start();
copy(process.getErrorStream(), System.err);
int status = process.waitFor();
thread.join();
System.err.flush();
System.out.flush();
System.exit(status != 0 ? status : error ? 1 : 0);
}
private void copy(InputStream in, OutputStream out) {
try {
byte[] buffer = new byte[4096];
for (int count; (count = in.read(buffer)) > 0;) {
out.write(buffer, 0, count);
}
} catch (IOException e) {
error = true;
e.printStackTrace();
}
}
}