4

Java 1.7 插件坚持尝试为指定的存档文件下载 pack.gz。例如,对于这样的小程序标签:

<applet codebase="." code="com.whatever.Something" archive="applet/SomethingWhatever.jar" mayscript="true">
<param name="someKindOfSettingA" value="1234">
</applet>

我们最终让 HTTP 服务器收到以下请求:

applet/SomethingWhatever.jar.pack.gz

我意识到我们可以通过提供一个 pack.gz 来解决这个问题,这将是有益的。但现在我只想抑制额外的请求。有没有办法通过小程序标签或其他东西来做到这一点?

我们试过这个:

<PARAM NAME="java_arguments" VALUE="-Djnlp.packEnabled=false"/>

基于此处说明的明显变化:http: //docs.oracle.com/javase/7/docs/technotes/guides/jweb/tools/pack200.html。但这并没有什么不同。

4

3 回答 3

1

这是一个 JRE 错误:

请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000291

问候卡米尔

于 2012-11-22T10:06:04.010 回答
0

最合乎逻辑的设置是同时尝试真正的和快速的小程序标签:

   <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
      <PARAM NAME  = "cache_archive" VALUE = "HelloWorld.jar"/>
      <PARAM NAME="java_arguments" VALUE="-Djnlp.packEnabled=true"/>
   </APPLET>

   <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
      <PARAM NAME  = "cache_archive" VALUE = "HelloWorld.jar"/>
      <PARAM NAME="java_arguments" VALUE="-Djnlp.packEnabled=false"/>
   </APPLET>

或者你可以尝试删除这条线,看看你得到的结果(不是garuntees,但它偶尔会起作用)

   <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
      <PARAM NAME  = "cache_archive" VALUE = "HelloWorld.jar"/>
   </APPLET>

如果这些都不起作用,那么您实际上没有取消通话的选项。调用是在 pack.gz 进入 jar 之前进行的,如果不创建一个执行相同操作但根本不会调用 pack.gz 的新类,就没有办法解决这个问题。

当然,正如你所说:

我意识到我们可以通过提供一个 pack.gz 来解决这个问题,这将是有益的。

这就是我要做的,因为它a)更容易并且b)不会伤害任何东西。

于 2012-10-15T16:08:07.187 回答
0

更新到最新版本的 JRE 可解决此问题。我在使用 jre 1.7_0_07 运行我的应用程序时遇到了同样的问题。但是升级到 jre 1.7_0_11 修复了它。

于 2013-02-04T22:45:04.970 回答