有没有办法在Eclipse控制台中显示行号?
我的目的是在Eclipse控制台中显示产生输出的文件/行号,而不是消息的串行编号(尽管这也可能是一个有趣的问题).
我正在寻找类似于Chrome的javascript控制台的东西,其中每一行都有一个链接,可以将您带到打印它的功能.
您可以创建PrintStream检查当前堆栈跟踪的自定义,并在输出中包含文件/行号.然后,您可以使用System.setOut/ System.setErr使所有stdout/stderr输出包含此信息.
通过正确格式化,Eclipse将把它作为堆栈跟踪元素并将其生成链接.
这是一个完整的演示:
public class Main {
public static void main(String args[]) {
System.setOut(new java.io.PrintStream(System.out) {
private StackTraceElement getCallSite() {
for (StackTraceElement e : Thread.currentThread()
.getStackTrace())
if (!e.getMethodName().equals("getStackTrace")
&& !e.getClassName().equals(getClass().getName()))
return e;
return null;
}
@Override
public void println(String s) {
println((Object) s);
}
@Override
public void println(Object o) {
StackTraceElement e = getCallSite();
String callSite = e == null ? "??" :
String.format("%s.%s(%s:%d)",
e.getClassName(),
e.getMethodName(),
e.getFileName(),
e.getLineNumber());
super.println(o + "\t\tat " + callSite);
}
});
System.out.println("Hello world");
printStuff();
}
public static void printStuff() {
System.out.println("More output!");
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse控制台:

我认为这是一个黑客,我不会用它来做任何事情,只是随便调试.
| 归档时间: |
|
| 查看次数: |
1757 次 |
| 最近记录: |