2011-05-15 52 views
1

是否可以使javac仅输出错误位置和错误消息,并隐藏源代码转储?javac标志仅打印错误位置

现在,我得到:

$ javac t.java 
t.java:1: <identifier> expected 
class { 
    ^
t.java:2: reached end of file while parsing 
bar 
^
t.java:4: reached end of file while parsing 

^ 
3 errors 

我只想得到:

$ javac ... t.java 
t.java:1: <identifier> expected 
t.java:2: reached end of file while parsing 
t.java:4: reached end of file while parsing 

回答

1

我觉得没有标志,你可以传递给javac的,但你可以简单地过滤通过任何程序的输出这删除了多余的线。这里使用grep的例子:

javac t.java 2>&1 | egrep '^[a-zA-Z0-9_/]+\.java:[0-9]+: ' 

你可能有,如果你有奇怪的字母文件名更改匹配文件名中的一部分 - 这似乎为ASCII子集工作。

+0

如果在'|'前没有'2>&1',您的管道解决方案无法正常工作。我已经在编写脚本来正确解析javac的输出,我只是想避免这种工作。 – pts 2011-05-15 13:39:29

+0

啊,对了,谢谢你注意到这一点。 (我没有真正尝试用真正的javac,而是用'cat javac-output | ...'来代替它。) – 2011-05-15 13:45:23