我在网页中显示了一个小程序
<applet code="foo.class"></applet>
当我更改服务器中的 foo.class 文件并访问该页面时,它会显示旧版本。如果我清空浏览器和 jvm 缓存,然后重新加载页面,它会显示当前版本。我如何告诉浏览器/jvm 这是同一类的另一个版本?
而且,如果我在本地访问 html 文件,没有任何网络服务器,即使没有缓存刷新,它也始终显示当前版本。我错过了什么?
更新:
用js加载小程序时,生成的html为:
<applet code="abcSynth.class" archive="miglayout-4.0-swing.jar" height="500" width="800">
<param name="cache_option" value="no"><param name="codebase_lookup" value="false">
现在,我在 java 文档中发现 codebase_lookup 在 .jar 存档中未提供主类时使用它,就像这种情况一样。值为 false 时抛出 ClassNotFoundException,值为 true 时开始(旧版本)。代码文件夹包含主类和其他几个 .class 文件,唯一的 .jar 是 miglayout.jar,但由于javadocs说“通常小程序部署时所有需要的类和资源都存储在小程序 JAR 文件中。 ”我想知道是否我在 .class/.jar 分解方面做错了。
解决 了谢谢它的工作!浏览器仍在缓存中保留旧版本,但重新启动后它会显示当前版本!
我使用的最终代码是:
<object classid="java:myClass.class"
type="application/x-java-applet"
archive="myJar.jar"
height="500" width="800" >
<param name="code" value="myClass.class" />
<param name="persistState" value="false" />
<param name="cache_option" value="no"/>
<param name="codebase_lookup" value="true"/></object>