NetBeans控制台中使用ANSI码进行彩色输出

9
我正在尝试在Netbeans的输出窗口中获得彩色输出。 在Linux和Windows控制台中,Ansi-Output完美地工作。但是在IDE中不行。 有没有办法使其在Netbeans的输出窗口中工作? 根据这个链接https://netbeans.org/bugzilla/show_bug.cgi?id=214546,它应该可以工作,但是在我的当前Netbeans 8.0.1安装中(无论是Linux还是Windows),它都不能工作。 有什么提示吗?
4个回答

6

我自己使用的是Windows 7上的Netbeans 8.0.1。我刚刚尝试了ANSI转义代码,它可以正常工作。例如:

String greenBold = "\033[32;1m";
String reset = "\033[0m";
System.out.println("before" + greenBold + " green " + reset + "after");

已经有一段时间了,所以我没有测试时用的代码了,也无法告诉你我做错了什么。不过,这个可以完美地工作。非常感谢!最终实现了彩色输出 :) - Mitch Haraldsson
我做了一些测试,显然颜色可以工作,但是清屏不行!https://github.com/ramonchiara/Cores - Ramon Chiara

2
使用Maven 3.5.x时似乎出现了问题。
请参见: 我首先尝试了使用旧版的Maven 3.3.9与NB 8.2,它可以直接正常工作。整个输出保持不变,但我的应用程序自己的日志按预期进行了着色。
使用Maven 3.5.2和3.5.4时,颜色根本没有起作用。因此,我必须将MAVEN_OPTS环境变量设置为“-Djansi.passthrough=true”(如第一个链接中建议的),然后重新启动NetBeans。问题是现在整个输出的颜色都变了,错误堆栈跟踪不再包含代码链接。所以我又切换回去了。
顺便说一下,当使用log4j2的%highlight{}时,我还必须设置disableAnsi="false"才能得到期望的效果:
<Console name="Console" target="SYSTEM_OUT">
    <PatternLayout pattern="%d{HH:mm:ss.SSS} %highlight{%-5level} [%t] %location --- %msg%n%throwable" disableAnsi="false" />
</Console>

一种替代方法是直接删除jansi。在我的Linux机上,我执行了chmod -r /path/to/netbeans/java/maven/lib/jansi*,错误似乎已经消失了,目前还没有任何不良影响(但我并不是一个重度Netbeans用户)。 - YoungFrog

1
我正在使用NetBeans 12.3,遇到了同样的问题。问题出在捆绑的Maven(版本3.6.3)上。 当我改用我系统中安装的Maven时,它就可以工作了。请注意,我系统中安装的Maven版本与捆绑的版本相同-3.6.3。

enter image description here

我已经在设置中更改了Maven的位置: 在此输入图片描述

你能解释一下你实际上是如何进行更改的吗? - Nathan Furnal
1
在Java/Maven选项中,您可以更改Maven的位置。 - user427843

0
@YoungFrog的解决方案对我来说是最好的。
我花了一整天的时间,让NetBeans 14能够同时使用超链接和ANSI颜色。
chmod -r /path/to/netbeans-14/netbeans/java/maven/lib/jansi*

完成了任务。

实际上,对我来说改变默认的Maven安装文件夹是不好的。为了使所有输出正常工作(堆栈跟踪中的超链接,输出中的ANSI颜色,没有NETBEANS-EXEC行),我建议您使用与您安装的特定NetBeans版本捆绑的Maven。


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