Java Web Start实例

来源:互联网 发布:nothing 软件 编辑:程序博客网 时间:2024/06/09 19:45

见:http://blog.csdn.net/u013288707/article/details/60871817



  1. JWS让用户可以下载服务器端的Java Application到本机运行,并且没有安装、配置等繁琐的操作
  2. JWS的运行原理:浏览器运行Java Application的链接指向的不是程序本身,而是一个*.jnlp(Java Network Launching Protocol,java网络加载协议 ),该文件包含了Java Application的一些配置信息。浏览器解读这个文件的信息,将服务器端的Java Application下载到本机上,然后运行。由于第一次运行需要下载程序,所以运行比较慢。第二次运行只是检查版本是否有没有更新,如果没有直接在本地运行,如果更新则会自动更新这个程序。

Java Web Start实例搭建

  • 新建一个Java Project,命名为JavaWebStart
package jws;import javax.swing.*;public class HelloWord {    public static void main(String[] args) {        SwingUtilities.invokeLater(new Runnable() {                 public void run() {                JFrame  jFrame = new JFrame("HelloWorld");                                JLabel  label = new JLabel("Hello, world!");                      JPanel  jPanel = new JPanel();                        jPanel.add(label);                        jFrame.add(jPanel);                    jFrame.pack();                        jFrame.setSize(400, 150);                    jFrame.setLocation(400, 300);                    jFrame.setVisible(true);                    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                          }        });    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 打成可执行的Jar包 
    JavaWebStart->Export->Runnable JAR file->选择存放位置和jar名(如:C:\Users\Desktop\JavaWebStart:/HelloWorld.jar)和运行的main方法所在的类(jws.HelloWord)->finish

  • 数字签名 
    对打成可执行文件的HelloWorld.jar包用下面的命令来签名: 
    1、到Dos状态下,,进入你们需发布应用程序的jar包所在的目录,运行下面这句话: 
    keytool -genkey -keystore myKeystore -alias jwstest 
    (它们将会提示你们输入用户名、密码等,,不用理它们,,按照提示随便输入即可,,但一定要记住密码..运行结束它们将会在当前路径下创建名为myKeystore(的)文件..) 
    说明:keytool是JDK自带的一个用于数字签名的工具。该语句的意思是生成一个证书,并且其文件名是:myKeystore。 
    2、用证用为应用程序签名 
    jarsigner -keystore myKeystore HelloWorld.jar jwstest 
    (其中HelloWorld.jar是你们(的)jar包名(这里就是HelloWorld.jar),你们需要修改它们,,别(的)就不必修改了..运行时会提示你们输入密码,,就是你们刚才在生成myKeystore文件时设定(的)密码..)

  • 在tomcat的webapps文件夹下新建一个JavaWebStart文件夹,将HelloWorld.jar文件拷入到它里面。

  • 在JavaWebStart的文件下创建一个helloWorld.jnlp文件。
<?xml version="1.0" encoding="UTF-8"?><!--codebase 属性指出搜索应用程序资源的顶级URL, 下面的icon/jar元素都是以这个URL为基本. --><jnlp codebase="http://localhost:8080/JavaWebStart/">    <information>        <!-- 在"开始"-"运行"菜单中输入"javaws"或"javaws -viewer"启动Web Start,         会看到客户端已经安装的webstart应用程序 -->        <!-- title:应用程序标题 vendor:供应商;title/vendor元素是必须,         会显示在用"javaws -viewer"命令打开的应用程序缓存查看器(Java             Application Cache Viewer)中 -->            <title>Hello World</title>            <vendor>Lively Corporation</vendor>            <description>HelloWorld Test Example</description>        <!--homepage :存放有关应用程序的相关文档的URL,如help文件等,        仅仅是description作用-->            <homepage href="http://127.0.0.1:8080/JavaWebStart/index.html"             mce_href="http://127.0.0.1:8080/JavaWebStart/index.html" />           <!--             icon 指定图标会显示在应用程序缓存查看器中(作为java web应用程序的图标),                        在查看器中新建JavaWebStart快捷方式到桌面时也会显示为快捷方式图标,只支持GIF/JPEG格式,其它格式无效         -->        <icon kind="splash" href="images/Fish13.jpg" mce_href="images/Fish13.jpg" />         <!-- 允许离线启动,可以使用javaws -offline命令-->           <offline-allowed/>          </information>    <resources>        <!--              指定客户端需要安装的j2se版本,下面指定为1.5,也可以用1.5+表示1.5版本以上的, 如果这里设置版本为1.5,而我机装的是1.6(所以我这里设置为1.7也会出现后面的问题),那么提示正在请求 JRE 1.5,过一段时间提示:无法启用该应用程序,提示手动更新j2se版本              改为1.5+就可以用1.6的JRE来运行它了          -->          <j2se version="1.5+" />          <!--             指定要下载到本地的jar文件(注意,所有的文件都需要打包才能够下载), 可以包含一些资源文件,如icons/configuration files,可以使用getResource方法取得         -->          <jar href="HelloWorld.jar" mce_href="HelloWorld.jar" />      </resources>     <!--  此项是指开放用户本机的所有权限给应用程序,这一项会导致弹出一个数字签名对话框。-->    <security>        <all-permissions/>    </security>     <!--application-desc 必须,指定JavaWebStart启动时执行jar文件中的哪个类-->      <application-desc main-class="jws.HelloWord" />   </jnlp>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 新建一个index.html文件
<a href="HelloWorld.jnlp">Launch Application</a>
  • 1
  • 启动Tomcat服务器,输入http://localhost:8080/JavaWebStart/index.html然后点击Launch Application。就可以访问HelloWorld.jnlp文件。服务器根据HelloWorld.jnlp文件来加载HelloWorld.jar文件,就可以在客户端直接运行服务器的资源,它工作过程是先将服务器资源下载到客户机,再运行,每一次访问都会到服务器去看看可执行jar包是否为最新的,本地若不是最新的就重新加载最新的,再运行,保持资源的最新版本。
  • 如果弹出应用程序安全设置阻止(java应用程序已被阻止的问题并不是由于浏览器的安全设置所导致的,而是由于java应用程序的安全设置所产生的,特别是在新版本的java中)解决的办法是。在操作系统的控制面板中点击程序,找到程序中Java,点击进入。Java控制面板中的安全选项卡里,点击编辑站点列表。输入需要访问还有java程序的页面地址,点击添加,忽略安全风险,点击继续。再次在浏览器中运行还有java的页面时,点击运行即可。

原创粉丝点击