Pracuję nad aplikacją Java Webstart. Ma to na celu zebranie zasobów z pliku JAR zawartego w sekcji zasobów w pliku JNLP.Jak załadować plik JAR zasobu z nazwami plików, w tym umlauty?
Język aplikacji jest niemiecki, więc niektóre foldery/pliki w JAR zawierają znaki "ä", "ö", "ü" lub "ß". Jeśli zacznę tej aplikacji jest następujący wyjątek:
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)
Gdybym otworzyć plik JAR w Notepad ++ to mówi kodowanie ANSI. Tak więc zmieniam go na UTF-8, ale potem nawet się nie kompiluje.
Używam Netbeans 7.2. Do opracowania dołączam plik JAR jako bibliotekę iw ten sposób jest on wymieniony w sekcji zasobów.