Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及其后续版本中更新的语言功能的摘要。
请参阅JDK发布说明,了解所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息。
富互联网应用程序(RIAs)会在本地进行缓存以提高启动时间。但是,在启动RIA之前,启动软件会检查RIA的Java网络启动协议(JNLP)文件中引用的每个JAR文件是否是最新的。换句话说,启动软件确保您正在运行的是最新版本的RIA,而不是旧的缓存副本。这些更新检查可能需要几百毫秒,具体取决于JAR文件的数量和网络速度。使用本主题中描述的技术,可以避免不必要的更新检查,并提升RIA的启动时间。
这里使用术语“启动软件”来集体指代Java插件软件和Java Web Start软件。Java插件软件用于启动小程序,而Java Web Start软件用于启动Java Web Start应用程序。
可以利用版本下载协议来消除不必要的版本检查。请参考以下步骤来启用此协议。
<JAR文件名>__V<版本号>.jar
DynamicTreeDemo.jar重命名为DynamicTreeDemo__V1.0.jar。jnlp.versionEnabled属性设置为true。
<resources>
<!-- 应用程序资源 -->
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"
max-heap-size="128m" />
<jar href="DynamicTreeDemo.jar"
main="true" version="1.0"/>
<jar href="SomeOther.jar" version="2.0"/>
<property name="jnlp.versionEnabled"
value="true"/>
<!-- ... -->
</resources>
当启用jnlp.versionEnabled属性时,启动软件仅执行一次更新检查,以确保JNLP文件是最新的。软件将JNLP文件中指定的版本号与JAR文件版本(根据步骤1中提到的命名约定)进行比较,并仅更新过时的JAR文件。这种方法很高效,因为仅网络上的JNLP文件会进行更新检查,所有其他版本检查都在本地进行。
如果找不到具有正确版本号的文件,则启动软件尝试加载默认的JAR文件(例如DynamicTreeDemo.jar)。
如果用户立即运行最新版本的RIA不是关键,可以指定所有更新检查都应在后台进行。在这种情况下,启动软件会启动本地缓存副本以供立即使用,并在后台下载更新的RIA版本。下次用户尝试使用RIA时,将启动新的RIA版本。要启用后台更新检查,请将以下行添加到您的JNLP文件中:
<update check='background'/>
下面的代码片段显示了一个启用了后台更新检查的示例JNLP文件:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
<information>
<title>Applet Takes Params</title>
<vendor>Dynamic Team</vendor>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.6+" href=
"http://java.sun.com/products/autodl/j2se"/>
<jar href="applet_AppletWithParameters.jar"
main="true" />
</resources>
<applet-desc
name="Applet Takes Params"
main-class="AppletTakesParams"
width="800"
height="50">
<param name="paramStr" value="someString"/>
<param name="paramInt" value="22"/>
</applet-desc>
<update check="background"/>
</jnlp>