同一程序的IDE启动版本和jar版本之间的输出不同

时间:2018-08-23 18:58:54

标签: java batch-file javafx encoding character-encoding

我有一个Javafx程序,该程序可以在IDE中正常运行,但是从批处理文件启动时遇到编码/字符集问题。

因此,假设我有以下代码:

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文件。这是gradle代码:

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"
}

0 个答案:

没有答案
相关问题