上一篇文章我们解决了Jenkins工程在build阶段处理中文的问题,但是好景不长,今天在归档文件的时候又出现了这个中文问题。经过我的细心探究,终于也解决了这个问题。
在这里向大家分享解决的方案。
问题现象
配置详情如下:
较前文我又增加了归档文件的步骤。执行后控制台的打印如下:
看上去还是字符的问题,前面的是java.nio.charset.UnmappableCharacterException,这里是java.nio.file.InvalidPathException。
解决思路
通过对比正常机器和容器节点的系统信息,我发现还有sun.jnu.encoding属性还是ANSI_X3.4-1968,这个部分现在只有这个不一样。
依照上个参数的配置方式,写入节点的JVM选项里。这个参数sun.jnu.encoding管理的是文件路径的编码,而上一篇文章中的是文件内容的编码。
断开后重新连接节点。
此时再去运行这个工程,发现还是不行的。观察节点的系统环境,还是没有变化,说明这并不是这样配置的。
没有成功的探索
网上找到文章,也提到了设置这个没生效的问题,还是建议在脚本阶段export LANG出来,但对我并没有作用,放出来仅作为参考。(blog.csdn.net/jie87344099…
还有让设置全局java属性的。设置JAVA_OPTS=’-Dfile.encoding="UTF-8" -Dsun.jnu.encoding="UTF-8"’,也没有用。
经过细致的观察发现,这个问题来源于JAVA版本,11版本的JAVA有时候不能正确的设置sun.jnu.encoding的值,容器中应该是这种情况,重新尝试了JAVA8版本的容器就没有这种问题。
这里我们重新基于Ubuntu 20.04制作一个容器,安装java8
sudo apt-get install openjdk-8-jdk
配置好ssh连接相关的东西。
重新建立节点连接观察。
虽然最后实际是通过换了java版本来解决这个问题的,但还是可以为大家提供参考,希望对大家能有所帮助