10

私はJavaWebstartアプリケーションに取り組んでいます。これは、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)

JARファイルをnotepad++で開くと、エンコーディングはANSIであると表示されます。そこで、UTF-8に変更しましたが、コンパイルすらできません。

Netbeans7.2を使用しています。開発のために、JARファイルをライブラリとして含めます。このようにして、JARファイルがリソースセクションにリストされます。

4

1 に答える 1

2

私は今、このようにJDKのJARツールを使用しました

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

そしてそれはうまくいきました。

生成されるJARファイルのエンコーディングはまだANSIであるため、なぜそれが機能するのか正確にはわかりません。

于 2012-11-01T18:27:03.043 に答える