【发布时间】:2022-02-13 23:55:01
【问题描述】:
我对编码还很陌生,目前我正在尝试在 Eclipse 中使用 gradle 构建我的第一个胖 JAR。我的项目生成一个 HTML 文件,其中包含我从 JSON 文件中获取的数据。那里的一些字符串使用 UTF-8 符号/表情符号。我设法用“Jackson”和对字符串使用 getBytes() 方法将它们放入我的 java 对象中。当我在 Eclipse 中从这些对象生成 HTML 时,它们会以正确的方式显示(在 Eclipse 之外的浏览器中打开时)。 当我使用“gradlew jar”构建胖 jar 时,就会出现问题(我必须在 build.gradle 中对 jar 进行一些更改以使其包含依赖项)。 一切正常,除了 UTF-8 符号没有显示,而是我得到一个“?”,就像编码设置不正确一样。 所以我认为问题在于 gradle 中的编码设置。
到目前为止,我尝试将其添加到 gradlew.bat:
set GRADLE_OPTS=-Dfile.encoding=utf-8
这个到 build.gradle :
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
这个到 gradle.Properties
systemProp.file.encoding=utf-8
就像这个线程中提到的Show UTF-8 text properly in Gradle
这些似乎都没有帮助。有任何想法吗?我卡住了,很难找到解决方案。
【问题讨论】:
-
你是否也使用
-Dfile.encoding=UTF-8来运行你的胖JAR?-Dfile.encoding=...是运行时使用的默认编码。不要将它与 Java 编译器用于读取 .java 文件的编码混淆 (javac -encoding ...)。 -
不,我用
java -jar name.jar运行它 -
谢谢,嚎叫。使用
java -jar -Dfile.encoding=UTF-8 name.jar运行它可以工作。 -
虽然我不喜欢这样,但我必须将其添加到我的命令中。有没有办法在项目/JAR 中设置它?
标签: java windows eclipse gradle utf-8