我有一个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"
}