对已打包成WAR文件或者为打包的WEB程序,自动修改JNLP文件,自动下载。
一个完整的例子
<?xml version="1.0" encoding="utf-8"?> <!-- JNLP File for SwingSet2 Demo Application --> <jnlp spec="1.5+" codebase="http://my_company.com/jaws/apps" href="swingset2.jnlp"> <information> <title>SwingSet2 Demo Application</title> <vendor>Sun Microsystems, Inc.</vendor> <homepage href="docs/help.html"/> <description>SwingSet2 Demo Application</description> <description kind="short">A demo of the capabilities of the Swing Graphical User Interface.</description> <icon href="images/swingset2.jpg"/> <icon kind="splash" href="images/splash.gif"/> <offline-allowed/> <association mime-type="application-x/swingset2-file" extensions="swingset2"> <shortcut online="false"> <desktop/> <menu submenu="My Corporation Apps"/> </shortcut> </information> <information os="linux"> <title> SwingSet2 Demo on Linux </title> <homepage href="docs/linuxhelp.html"> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.4.2+" java-vm-args="-esa -Xnoclassgc"/> <jar href="lib/SwingSet2.jar"/> </resources> <application-desc main-class="SwingSet2"/> </jnlp>
根元素是jnlp,它包含四个子元素:information, security, resources 和 application-desc. 此外, Java Web Start 也通过applet-desc 元素支持装载运行applets。
Ø JNLP元素
spec:指明JNLP规格的版本,默认为"1.0+".
codebase:JNLP文件中所有href属性指定的相对URL都是以这个属性值为基础的。
Href: 一个URL,指定JNLP文件本身所在的位置
Ø INFORMATION元素
n Title:应用程序的名字,必需
n Vendor:应用厂商的名字,必需
n Homepage:只包含一个href属性,用来定位应用程序所在的主页。JNLP Client能用它来把用户指向Web Page,在哪里用户能找到更多的关于应用程序的信息。
n Description:简短的对应用程序的描述。此元素是可选的。kind属性用来规定怎样使用描述,kind的值如下三个One-line、short、tooltip.每个这种的元素只能有一个,JNLP文件中可以包含多个description元素。比如某JNLP文件种有如下代码:
<description>SkylinkLMS - Logistics Management System</description> <description kind="short">SkylinkLMS</description> <description kind="one-line">SkylinkLMS</description>
没有指定kind属性的元素将被当作默认的,在Java Web Start没有找到所需要的kind时,就使用默认的。
n Icon:包含一个指向格式为GIF或者JPEG的图片的HTTP URL.这个图标用来描述以下几个方面:
ü during launch when Java Web Start presents the application to the user
ü in the Java Application Cache Viewer;
üin desktop shortcuts.
下载时,显示64×64,在Java Application Cache Viewer以及桌面图标为32x32.Java Web Start自动调整图标到合适的尺寸。
ü Icon元素需要href属性用来指定图标文件的目录以及名字。
ü 可选的属性kind=“splash”用来指定在启动应用程序期间显示的“splash”屏幕中,需要显示的图标。
如果JNLP文件中没有包含kind属性的icon元素,Java Web Start仍将用information元素中的其它项来构造splash screen.JNLP文件中可以包含多个图标元素。
<icon href="images/swingset2.jpg"/>
<icon kind="splash" href="images/splash.gif"/>
ü 可选的WIDTH和HEIGHT属性描述了图标的大小。
如果JNLP文件中没有包含任何的icon元素,splash image将用应用程序的title和vendor来构造。
n Offline-allowed元素
可选元素,说明应用程序是否可以离线启动。如果指定,则应用程序在离线的情况下也可以装载运行。如果应用离线装载运行,将不会检查程序的更新情况,并且API对BasicService.isOffline()将返回true.
Offline-allowed元素控制Java Web Start怎样检查应用程序的更新情况。如果此元素没有出现(也就是没有指定)则应用程序必须在线运行,在启动应用之前将会先检查程序是否存在更新版本,如果有,则会在下载了更新版本之后才启动应用程序。
如果指定了offline-allowed元素,Java Web Start也会检查应用是否存在更新。但是,如果应用已经下载,那么检查动作在几秒之后就会timeout(所以应提供一个比较快速server connection),如果timeout,就会启动cached application.
n Shortcut元素
可选元素。包含可选的online属性,为true,应用将优先创建一个在线启动的快捷,如果为false,应用将优先创建一个离线启动的快捷。
子元素:desktop指示应用程序是否放置一个快捷方式在桌面上
子元素:menu指示应用程序是否放置一个菜单在start menu上。这个元素有一个submenu属性,包含一个字符串,描述是否建立一个子菜单。
n Association元素
可选的元素。用来说明是否让操作系统把某扩展和某mime-type注册关联。它有两个必需的属性extensions和mime-type
n Related_content元素
<information>
...
<related-content href="readme.html">
<title>README</title>
<description>The README file contains the … product</description>
<icon href="readme.jpg"/>
</related-content>
<related-content href="register.html">
<title>Program Registration</title>
<description>Register this product to receive support products</description>
</related-content>
</information>
Ø Security元素
默认情况下,应用程序在受限的执行环境中运行,类似于小应用中沙袋。这个元素允许应用请求不受限制的访问。
如果all-permissions子元素被指定了,那么应用就有对客户端机器和本地网络“全部访问权限”。如果应用请求了“全部访问权限”,那么所有的JAR文件都必须签名。而且应用在第一次启动时会提示用户是否接收证书。
Ø Resources元素
资源元素用来描述所有的资源,比如jar文件、native库、系统属性等,它们都是应用的一部分。资源的定义受限于特定的操作系统、architecture或者locale、os、arch.
资源元素有留个不同的子元素jar, nativelib, j2se, property, package, and extension.在这里不讨论 package 和 extension 。
n jar子元素
指定应用所需的JAR文件所在的路径,用href属性指明。
<jar href="sound.jar" download="eager" main=”true”/>
Jar元素有一个可选的main属性,用来指出此包中是否包含Main类。在JNLP文件中,至少要有一个jar元素指明是main=”true”的,如果没有任何jar元素指定为main的,那么默认第一个jar元素就是main的。
n nativelib子元素
指出包含本地库的JAR文件。本地库文件必须符合操作系统平台命名的习惯,比如WINDOWS必须时.dll而Solaris/Linux必须lib*.so。应用程序负责调用System.loadLibrary来装载它们。
<resources os="Windows"/>
<nativelib href="lib/windows/corelibs.jar"/>
</resources>
<resources os="SunOS" arch="SPARC">
<nativelib href="lib/solaris/corelibs.jar" download="lazy"/>
</resources>
Download属性有两个值:eager说明在应用程序启动之前必须下载到本地;lazy说明在启动之前没有必要下载到本地。
n j2se子元素
此元素指明了应用程序所支持的JRE的版本以及传递给JVM的标准参数
<j2se version="1.3" initial-heap-size="64m" max-heap-size="128m"/>
<j2se version="1.4.2+" href="http://java.sun.com/products/autodl/j2se"
java-vm-args="-esa -Xnoclassgc"/>
默认情况下,version指的是平台版本,当前JRE平台版本有1.2,1.3,1.4和1.5(平台版本没有包含微版本号比如1.4.2)
Version也可以指定精确的版本号,比如1.3.1_07, 1.4.2, or 1.5.0-beta2 但必须包含href属性,如:
<j2se version="1.4.2" href="http://java.sun.com/products/autodl/j2se"/
或
<j2se version="1.4.2_04" href="http://java.sun.com/products/autodl/j2se"/>
如果指定了一个平台的版本,Java Web Start将不会考虑那些已安装了的 non-FCS (i.e., milestone) JRE,比如:
<j2se version="1.4+"/>
将不会考虑已安装了的1.4.1-ea 或者 1.4.2-beta JRE as a match for the request
n property元素
指定系统属性,可以通过System.getProperty()和System.setProperty()来访问。这个元素有两个属性:name 和 value
Ø Application-desc元素
此元素用来指明装载运行的普通的应用程序而不是applet.它有几个属性:
可选属性main-class以及一个或多个嵌套的argument子元素
<application-desc main-class="Main">
<argument>arg1</argument>
<argument>arg2</argument>
</application-desc>
如果JNLP文件包含的第一个JAR文件中的manifest 文件中有main class,那么就可以省略main-class属性
应用程序的main class默认情况下,是由application-desc元素的main-class属性决定的。如果没有指定这个属性,那么main JAR文件中的manifest项将被使用,其中指出了哪个是main class.