0

次のクラスを使用するアプレットベースのアプリケーションがあります。

  • javax.xml.parsers.DocumentBuilderFactory
  • javax.xml.parsers.DocumentBuilder
  • javax.imageio.ImageIO
  • javax.imageio.ImageWriteParam
  • javax.imageio.ImageWriter
  • javax.imageio.stream.FileImageOutputStream . . 等

これは私がアプレットを初期化する方法です:

 var attributes = {
   codebase : "http://example.com/urlto/jars",
   code     : "AppletLauncher.class",
   archive  : "MyApp.jar?v=" + Math.random()
};

var parameters = {"java_arguments": "-Xmx512m"};

deployJava.runApplet(attributes, parameters, "1.6");

アプレットは、いくつかの GET 要求を行います。リクエストの例を次に示します。

[GET]  /urlto/jars/META-INF/services/javax.imageio.spi.ImageInputStreamSpi
[HEAD] /urlto/jars/META-INF/services/javax.imageio.spi.ImageInputStreamSpi
[GET]  /urlto/jars/META-INF/services/javax.imageio.spi.ImageTranscoderSpi
[HEAD] /urlto/jars/META-INF/services/javax.imageio.spi.ImageTranscoderSpi
[GET]  /urlto/jars/META-INF/services/javax.imageio.spi.ImageReaderSpi
[GET]  /urlto/jars/META-INF/services/javax.imageio.spi.ImageOutputStreamSpi
[GET]  /urlto/jars/META-INF/services/javax.imageio.spi.ImageWriterSpi
[GET]  /urlto/jars/META-INF/services/javax.xml.parsers.DocumentBuilderFactory

この投稿を読んだところ、codebase_lookup を無効にすることについて言及されていましたが、これもうまくいきませんでした。

クラスローダが最初に JVM のクラスとアプレット jar ファイルを検索することを理解しています。見つからない場合は、コードベースを検索してそれらのリクエストを行います。それが本当なら、私はすべてのコア クラスを使用していますが、なぜリクエストを行う必要があるのでしょうか? これらのリクエストを行わないように強制するにはどうすればよいですか?

すべての要求が失敗すると、アプレットは最終的に初期化されますが、アプレットの起動に時間がかかりすぎます。

アプリケーションでは、BufferedMemory で JPEG を読み取り、BufferedMemory から JPEG を書き込むだけです。

4

1 に答える 1

0

私はEclipse組み込みのエクスポートRunnable Jar機能を使用してjarファイルを作成していました。独自のMANIFESTファイルを作成し、次のパラメーターを追加していました

Class-Path: .

そのため、その ant スクリプトを使用しましたが、このパラメーターを削除して jar ファイルを作成し、それらの要求を停止しました。何が問題だったのかわかりません。「。」でそれらのSPIファイルを探していたと思います。見つからなかったので、それらのリモート要求を作成しました。誰かアイデアがあればコメントしてください。ありがとう!

于 2013-07-22T10:17:29.043 に答える