关于jdk多版本的调研。
Jws的版本和发布程序没有关系。如果在机器上安装了多个版本的jws,那么默认使用哪个是由系统决定的。注册表中的
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command的值指向某个版本的javaws.exe。
从发布的角度来看,只能在jnlp文件中指定你的程序需要的jre,而无法要求客户端用什么版本的jws。这就象web server没办法要求用户使用什么浏览器一样。
在resources下,可以有多个j2se标签,例如
<resources>
<j2se version="1.3">
<j2se version="1.4+"/>
</resources>
不同的版本是有优先顺序的,排在前面的优先级最高。
jnlp文件是由客户端机器上的jws来解析的,以上面的配置为例,jws会首先找1.3,如果找不到,就会退而求其次,找1.4,如果还找不到,因为那个加号,它会去找1.5。
只有某些特殊的应用必须在某个版本的jre下运行(高了或低了都不行),所以必须在jnlp文件中指定一个版本,而不能用加号。
对于一般的应用,只要知道应用所需的最低版本,就可以用加号(利用jre向后兼容性),这样适应性好一点。只要客户端机器上有你指定的版本或比你指定的版本高的任何版本,就无需下载新的jre了。