我已经使用jpackage(Java 14,OpenJDK(为我的Java应用程序生成了一个Windows可执行文件。它工作得很好,但最后一个小故障困扰着我:应用程序与带有特定后缀的文件相关联。在Windows资源管理器中双击这样的文件时,应用程序将启动并打开该文件。只要文件路径仅由7位ASCII字符组成,这也可以正常工作。然而,一旦出现元音变音符或类似的东西(如"c:\myFolder\É.exb"(,我就会收到一条错误消息:
java.io.FileNotFoundException: C:UsersThomasDesktopÄ.exb (Das System kann die angegebene Datei nicht finden)
at org.exmaralda.partitureditor.jexmaralda.sax.BasicTranscriptionSaxReader.readFromFile(BasicTranscriptionSaxReader.java:60)
显然,这是一个编码问题。文件路径为UTF-8,但读取方式为ISO-8859-1(?(。在哪里我可以告诉jpackage期望main(String[] args)
的参数以UTF-8编码?我试过了:
<arg value="--java-options"/><arg value="-Dfile.encoding=UTF-8"/>
<arg value="--java-options"/><arg value="-Dsun.jnu.encoding=UTF-8"/>
在蚂蚁的工作中,它调用jpackage,但这并没有改变任何事情。有人知道去哪里看或做什么吗?谢谢
感谢您的确认。这似乎已经在OpenJDK的Java 14和15之间得到了修复。当使用JDK15中的jpackage时,问题消失了。:-(