gpt4 book ai didi

java - 如何加载包含变音符号的文件名的资源 JAR?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:01:47 24 4
gpt4 key购买 nike

我正在开发 Java Webstart 应用程序。这应该从 JNLP 文件的资源部分中包含的 JAR 文件中收集资源。

应用程序语言是德语,因此 JAR 中的一些文件夹/文件包含字符 'ä'、'ö'、'ü' 或 'ß'。如果我启动此应用程序,则会抛出以下异常:

java.lang.IllegalArgumentException: MALFORMED
at java.util.zip.ZipCoder.toString(Unknown Source)
at java.util.zip.ZipInputStream.readLOC(Unknown Source)
at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
at com.sun.deploy.net.HttpDownloadHelper.decompressWrite(Unknown Source)
at com.sun.deploy.net.HttpDownloadHelper.download(Unknown Source)
at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

如果我在 notepad++ 中打开 JAR 文件,则显示编码为 ANSI。因此,我将其更改为 UTF-8,但它甚至无法编译。

我正在使用 Netbeans 7.2。为了进行开发,我将 JAR 文件作为库包含在内,并以这种方式将其列在资源部分中。

最佳答案

我现在使用 JAR tool从像这样的 JDK

jar cf <jar-file-name> <input-file(s)>

而且效果很好。

我不太明白为什么会这样,因为生成的 JAR 文件的编码仍然是 ANSI。

关于java - 如何加载包含变音符号的文件名的资源 JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com