0

我使用 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 工作中,但这并没有改变任何东西。有人知道在哪里看或做什么吗?谢谢。

4

1 回答 1

0

感谢您的确认。这似乎已在 OpenJDK 的 Java 14 和 15 之间得到修复。当使用 JDK 15 中的 jpackage 时,问题就消失了。:-)

于 2020-11-16T07:40:43.990 回答