Tôi đang làm việc trên một ứng dụng Java Webstart. Điều này được cho là thu thập tài nguyên từ một tệp JAR được bao gồm trong phần tài nguyên trong tệp JNLP.Làm thế nào để tải một JAR tài nguyên với tên tập tin bao gồm cả umlauts?
Ngôn ngữ ứng dụng là tiếng Đức, vì vậy một số thư mục/tệp trong JAR bao gồm các ký tự 'ä', 'ö', 'ü' hoặc 'ß'. Nếu tôi bắt đầu ứng dụng này ngoại lệ sau đây được ném:
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)
Nếu tôi mở tập tin JAR trong notepad ++ là nói mã hóa là ANSI. Vì vậy, tôi thay đổi nó thành UTF-8 nhưng sau đó nó thậm chí không biên dịch.
Tôi đang sử dụng Netbeans 7.2. Để phát triển, tôi bao gồm tệp JAR dưới dạng thư viện và cách này được liệt kê trong phần tài nguyên.