我在无头Ubuntu 16.04服务器上编译ZXing源代码时遇到了一些麻烦,而在Ubuntu 18.04(非无头)上的家中,它可以正常编译。我已经修改了语言环境,确保它们是相同的,尽管它不能解决那里的错误:
[错误] /root/zxing/core/src/main/java/com/google/zxing/client/result/WifiResultParser.java:36:错误:不可编码的ASCII字符
在使用LC_ALL进行设置区域设置和其他几次尝试后,我只是不了解问题可能是什么,因此更改原始代码是最不利的选择。这是,file -bi报告文件为文本/纯文本; charset = utf-8,所以我很困惑ASCII发挥作用的地方。
目前,我可以使用mvn软件包-Dmaven.test.skip = true -Dmaven.javadoc.skip = true,但这只是一种解决方法,而不是解决方案。
使用java -jar -verbose进行的进一步测试表明,可能缺少一些更严重的东西,因为它在以下位置停止执行:
[6.979s] [info] [classload] java.time.Instant来源:jrt:/java.base [6.980s] [info] [classload] java.time.Clock来源:jrt:/java.base [6.980s] [info] [classload] java.time.Clock $ SystemClock来源:jrt:/java.base [6.982s] [info] [classload] java.time.ZoneId来源:jrt:/java.base [6.982s] [info] [classload] java.time.ZoneOffset来源:jrt:/java.base
在我的本地计算机上,它在此行之后初始化java.util.logging.Logger,而在服务器上,它跳过并退出。
进一步检查显示它无法读取我提供给它的图像,并停止在: [动态链接本机方法com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage ... JNI] [动态链接本机方法com.sun.imageio.plugins.jpeg.JPEGImageReader.disposeReader ... JNI] [动态链接本机方法java.io.FileInputStream.close0 ... JNI]