我已经使用jpackage (Java14,OpenJDK)为我的Java应用程序生成了一个Windows可执行文件。它工作得很好,但还有最后一个小故障困扰着我:应用程序与具有特定后缀的文件相关联。在Windows资源管理器中双击此类文件时,应用程序将启动并打开该文件。只要文件路径仅由7位ASCII字符组成,也可以很好地工作。但是,一旦出现Umlaut或类似的东西(如"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作业中,但这并没有改变任何事情。有没有人知道该去哪里看或者做什么?谢谢。
发布于 2020-11-16 15:40:44
感谢您的确认。在OpenJDK的Java 14和15之间,这个问题似乎已经解决了。当使用JDK 15中的jpackage时,这个问题就消失了。:-)
https://stackoverflow.com/questions/64817144
复制相似问题