我的一个小程序展示在一个网页上,代码如下:
<applet code="foo.class"></applet>
当我更改服务器中的foo.class文件并访问该页面时,它显示旧版本。如果我清空浏览器和jvm缓存,然后重新加载页面,它将显示当前版本。如何告诉浏览器/jvm这是同一类的另一个版本?
并且,如果我本地访问html文件而没有任何web服务器,即使不刷新缓存,它也始终显示当前版本。我错过了什么吗?
更新:
使用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文档中发现,当主类未与.jar存档一起提供时,例如此示例时,使用codebase_lookup。对于false值,它会抛出ClassNotFoundException,对于true值,它会启动(旧版本)。
代码文件夹包含主类和其他几个.class文件,唯一的.jar是miglayout.jar,但由于Java文档说“通常,小程序使用存储在小程序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>
<applet code="foo.class"></applet>
。但是由于该小程序没有指定宽度或高度,你能看到任何东西吗?请先验证一下HTML的有效性(http://validator.w3.org/)。"