System.out的超链接?

5
所以,如果我调用

public void throwException throws Exception {     
  throw new Exception("foo") ; 
} 

输出结果将会类似于这样:
java.lang.Exception: foo
      at SomeClass.throwException(SomeClass.java:5) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      ... 

现在,如果我点击(SomeClass.java:5),IDE将跳转到SomeClass.java的第5行。

当使用System.out或抛出异常时,是否有可能手动生成这些超链接?我已经尝试通过更改StackTraceElement来操作异常,但它似乎只适用于有效的Java类。

我正在开发一个项目,需要解析一个唯一定义的文件,并希望打印超链接,直接引导到文件,而不是解析方法中发生问题的位置。


13
Java本身不提供那些超链接,是你的IDE通过解析输出来实现的。 - clentfort
但这是许多文本编辑器实现的旧规范。 - Denys Séguret
1个回答

3

是的。如果你有一个名为MyClass的类,并且希望IDE提供到该类第10行的链接,你可以按照以下步骤操作:

System.out.println("(MyClass.java:10)");

注意:本文特别针对Eclipse IDE,但也可能适用于其他IDE。
编辑:我刚刚看到了这篇文章,值得一看:Eclipse控制台 - 什么规则使堆栈跟踪可点击?

也许这个问题会更有帮助:http://stackoverflow.com/questions/6355286/how-to-format-output-to-console-to-generate-automatic-navigation-hyperlink-fro - cklab
好吧,这很不错,但我仍然无法链接到除Java类之外的其他文件 :( - Anton Horst
在这里找到了一些相关内容(http://jimbarritt.com/non-random/2010/05/16/link-from-log-console-output-to-a-line-of-code-in-intellij/),但对于普通文件仍然无法正常工作... - Anton Horst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接