首页 > 解决方案 > 同一程序的 IDE 启动版本和 jar 版本之间的输出不同

问题描述

我有一个在 IDE 中运行良好的 javafx 程序,但是从批处理文件启动时会出现编码/字符集问题。

所以,假设我有这个代码:

String lol = DateTimeFormatter.ofPattern("MMMM", new Locale("fr")).format(startDate);
String lol2 = "août";
int lol3 = lol.compareTo(lol2);
System.out.println(String.format("Voici la différence entre %s et %s: %d", lol, lol2, lol3));

当我在 IDE (IntelliJ IDEA Ultimate) 中运行它时,我得到以下输出:

Voici la différence entre août et août: 0

当我使用批处理文件运行它时,我得到以下输出:

Voici la différence entre août et août: 56

我的批处理文件如下:

start java -DdefaultCharset=UTF-8 -Dfile.encoding=UTF-8 -jar cs-build-master-1.0.0.jar

我对此完全感到困惑!任何帮助将不胜感激。

编辑

我正在使用 shadowJar 导出我的 jar 文件。这是毕业代码:

jfx {
    // minimal requirement for jfxJar-task
    mainClass = 'com.lol.csbuildmaster.MainApp'

    // minimal requirement for jfxNative-task
    vendor = 'Lol'
}

shadowJar {
    baseName = 'cs-build-master'
    classifier = null
    version = "1.0.0"
}

标签: javabatch-filejavafxencodingcharacter-encoding

解决方案


推荐阅读