掌握 Java Web Start 技术 二

1.1 JnlpDownloadServlet Guide

对已打包成WAR文件或者为打包的WEB程序,自动修改JNLP文件,自动下载。

 

1.2 JNLP File Syntax

一个完整的例子

 

<?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+".

codebaseJNLP文件中所有href属性指定的相对URL都是以这个属性值为基础的。

Href: 一个URL,指定JNLP文件本身所在的位置

Ø   INFORMATION元素

n    Title:应用程序的名字,必需

n    Vendor:应用厂商的名字,必需

n    Homepage:只包含一个href属性,用来定位应用程序所在的主页。JNLP Client能用它来把用户指向Web Page,在哪里用户能找到更多的关于应用程序的信息

n    Description:简短的对应用程序的描述。此元素是可选的。kind属性用来规定怎样使用描述,kind的值如下三个One-lineshorttooltip.每个这种的元素只能有一个,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"/>

ü 可选的WIDTHHEIGHT属性描述了图标的大小。

 

如果JNLP文件中没有包含任何的icon元素,splash image将用应用程序的titlevendor来构造。

n        Offline-allowed元素

可选元素,说明应用程序是否可以离线启动。如果指定,则应用程序在离线的情况下也可以装载运行。如果应用离线装载运行,将不会检查程序的更新情况,并且APIBasicService.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注册关联。它有两个必需的属性extensionsmime-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或者localeosarch.

资源元素有留个不同的子元素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必须时.dllSolaris/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.41.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属性

 

1.3 装载细节

应用程序的main class默认情况下,是由application-desc元素的main-class属性决定的。如果没有指定这个属性,那么main JAR文件中的manifest项将被使用,其中指出了哪个是main class.

你可能感兴趣的:(java,Web,linux,J2SE,网络应用)