0

我有一个基于小程序的应用程序,它使用以下类:

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

这就是我初始化小程序的方式:

 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 回答