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>