在Netbeans中用maven单元测试控制台输出无法正确打印汉字

问题描述 投票:0回答:1

我的工作环境是: 产品版本: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 控制台打印出如下混乱的代码: messy codes output 这是我的单元测试代码如下:

        @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("你好");
    }

running main() method works well

我该如何解决这个问题?

maven unit-testing netbeans character-encoding
1个回答
0
投票

完成我在问题中提到的所有操作后,我重新启动了计算机,然后再次运行单元测试,我得到了以下预期输出:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8 -Dstdout.encoding=utf-8 -Dsun.stdout.encoding=utf-8
Running com.********.***Test
测试

我很好奇为什么即使多次重启Netbeans,环境变量也没有重新加载。

© www.soinside.com 2019 - 2024. All rights reserved.