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+".
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属性
1.3 装载细节
应用程序的main class默认情况下,是由application-desc元素的main-class属性决定的。如果没有指定这个属性,那么main JAR文件中的manifest项将被使用,其中指出了哪个是main class.
分享到:
相关推荐
按本书精心组织的21个课程进行学习,任何人都能掌握Java编程的基础知识。 自我掌握进度。读者可依次阅读每章,以彻底理解所有的概念和方法论;也可有选择地阅读,学习自己最感兴趣的技巧。 进行了全面的修订、更新和...
第2周介绍Java类库,包括向量、堆栈、映射、散列表和位组等数据结构,以及Swing组件、布局管理器和Java Web Start等;第3周介绍高级主题,包括输入和输出、对象序列化、通过Internet进行通信、使用数据库、XML、Web...
在这里将描述如何将应用程序打包到 JAR 文件中,以及如何使用Java的Web Start 机制在Internet上发布应用程序。最后,将解释 Java程部署之后如何存储、检索配置信息。 第11章讨论异常处理,即Java的健壮机制,它用于...
二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(< > & “”) 3.在JSP中如何读取客户端的请求,如何访问CGI变量...
(1)通过实验掌握 Spark SQL 的基本编程方法; (2)熟悉 RDD 到 DataFrame 的转化方法; (3)熟悉利用 Spark SQL 管理来自不同数据源的数据。 (4)java程序实现SparkSQL 二、实验环境 Windows 10 VMware ...
,,比如很多开源的项目,都可以用上啦,,比如报表啊,多媒体组件啊,即时通信啊都可以放在applet里 ,,试想如果applet 能成功推广一个网站的话,,不用改什么代码就可以把它做成c/s系统 或 桌面程序 改成web start !...
本书适合所有掌握JavaEE(Java企业级版本)开发技术的人员——无论您是技术开发者、项目实施者、系统架构师,还是流程分析师、业务方案顾问,本书都适合您。 第一篇 jBPM工作流开发基础 1 第1章 工作流基础 2 1.1 ...
类似于Java Web中的页面Page,将一系列View装载起来通过内部的加载引擎展现给前台用户。可以说一个简单的Android应用就是由一组Activity组合而成。可见对于Activity的学习在整个Android移动开发学习中至关重要的一环...
文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半...