用于着色javac输出的工具?

时间:2012-10-03 06:29:47

标签: java colors terminal javac

我们有一个非常并行化的构建过程,所以我经常需要浏览javac的大量输出来查找构建错误。

为了使这更容易,如果有一些工具将javac的输出着色到我的终端,突出显示代码中的错误会很好。

我可以用什么工具来着色javac的输出?

3 个答案:

答案 0 :(得分:0)

使用 grep 和“--color”选项?

~$ javac Test.java 2>&1 | egrep --color "^|error"

答案 1 :(得分:0)

我最终使用了一个名为Generic Colorizer Tool的工具,并编写了我自己的配置,用于着色最重要的输出。工作得很好。 :)

答案 2 :(得分:0)

通过使用任何正则表达式匹配器来匹配您的文本并使用终端颜色转义码将其包围以应用颜色来滚动您自己的javac错误着色器:

使用readfilesubstitute意识形态:

#1.  Do your javac and pipe the result to a file:
javac whatever.java 2>/tmp/javac_errors.out;

#define the escape start and stop codes that your terminal 
#uses to apply foreground and background color:
let redbackground        = '\\e[48;5;196m'
let normalbackground     = '\\e[0;0m'

#iterate the lines in the saved file:
for line in readfile("/tmp/javac_errors.out")

    #Use sed, match, substitute or whatever to regex substitute 
    #the text with the text surrounded by the color escape codes
    #find and replace the text 'error:' with the same surrounded by escape codes
    let line = substitute(line, 
                          'error:',
                           redbackground . 
                           'error:' . 
                           normalbackground, 'g')

    #use echo -e flag to tell the terminal to interpret the escape codes:
    echo -e line
endfor

为我工作:

javac colorzing example

此代码与上面的代码相同,但是它使用了终端线路迭代器和sed替换思想:

#run javac pipe to file
javac whatever.java 2>/tmp/errors.out

#Define terminal color codes
redbackground='\\e[48;5;196m'
normalbackground='\\e[0;0m'

#read the file and print out each line 
filename="/tmp/errors.out" 
while read -r line; do  
    #replace error surround with escape codes 
    line=`sed "s/error:/${redbackground}error:${normalbackground}/g" <<<"$line"` 
    echo -e "$line" 
done < "$filename"