我的工作环境是: 产品版本:Apache NetBeans IDE 20 爪哇:20.0.1; Java HotSpot(TM) 64 位服务器虚拟机 20.0.1+9-29 运行时:Java(TM) SE 运行时环境 20.0.1+9-29 系统:在amd64上运行的Windows 10版本10.0; UTF-8; zh_CN (nb)
我尝试了一些包含中文字符的单元测试,Netbeans 控制台打印出如下混乱的代码: 这是我的单元测试代码如下:
@Test
public void printChinese(){
System.out.println("测试");
}
我尝试了多种方法来解决这个问题, 例如将
JAVA_TOOL_OPTIONS=-Dfile.encoding=utf-8 -Dstdout.encoding=utf-8 -Dsun.stdout.encoding=utf-8
添加到环境变量中。
修改pom,添加此配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=utf-8 -Dstdout.encoding=utf-8 -Dsun.stdout.encoding=utf-8</argLine>
</configuration>
</plugin>
</plugins>
</build>
修改/etc/netbeans.conf,添加以下参数:
-J-Dfile.encoding=UTF-8
但这些都失败了。
但是运行这个 main() 方法,效果很好:
public static void main(String[] args) {
System.out.println("你好");
}
我该如何解决这个问题?
完成我在问题中提到的所有操作后,我重新启动了计算机,然后再次运行单元测试,我得到了以下预期输出:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8 -Dstdout.encoding=utf-8 -Dsun.stdout.encoding=utf-8
Running com.********.***Test
测试
我很好奇为什么即使多次重启Netbeans,环境变量也没有重新加载。