我使用 jpackage(Java 14,OpenJDK)为我的 Java 应用程序生成了一个 Windows 可执行文件。它工作正常,但有一个让我困扰的最后一个故障:该应用程序与具有特定后缀的文件相关联。在 Windows 资源管理器中双击此类文件时,应用程序将启动并打开该文件。只要文件路径仅包含 7 位 ASCII 字符,这也可以正常工作。但是,只要有元音变音或类似的东西(如在“c:\myFolder\Ä.exb”中),我就会收到一条错误消息:
java.io.FileNotFoundException: C:\Users\Thomas\Desktop\Ä.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 的 ant 工作中,但这并没有改变任何东西。有人知道在哪里看或做什么吗?谢谢。