知识大全 Java web start入门

Posted 文件

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java web start入门相关的知识,希望对你有一定的参考价值。

Java web start入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  下面是用最简单的HelloWorld方法实现一个Java Web Start的例子 工程webstart目录结构如下

  目录说明如下

  images 存放* jnlp文件中定义的图标文件

  jar 存放classes打包后的jar文件

  jnlp 存放* jnlp描述文件

  src java源码

  WEB INF/classes java编译后的class文件

  webatart 建立步骤如下

   .在webstart/src/jws下新建一HelloWorld java文件

  package jws;

  import javax swing *;

  public class HelloWorld

  private JFrame jFrame;

  private JPanel jPanel;

  private JLabel label;

  public HelloWorld()

  jFrame = new JFrame( HelloWorld Test Frame );

  label = new JLabel( Hello world! );

  jPanel = new JPanel();

  jPanel add(label);

  jFrame add(jPanel);

  jFrame pack();

  jFrame setSize( );

  jFrame setLocation( );

  jFrame setVisible(true);

  jFrame setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);

  

  // webstart 启动时执行的主方法

  public static void main(String args[])

  new HelloWorld();

  

  

  注 在main方法中完全可以不用写new HelloWorld(); 而只在main方法中输出一条测试语句

  System out println( This is test! );

  进行简单测试 打印结果会出现在步骤 java控制台中

   .编译HelloWorld java 在WEB INF/classes目录下执行命令

  jar cvf helloworld jar jws/* class

  执行后把生成的helloworld jar包拷贝到webstart/jar/jws目录下

  (在IDEA中打包使用Jar Tool插件比较方便 eclipse中可以使用Fatjar)

   .从helloworld jar/META INF中解压出MNIFEST MF 更改MNIFEST MF内容

  Manifest Version:

  Created By: _ (Sun Microsystems Inc )

  为

  Manifest Version:

  Created By: _ (Sun Microsystems Inc )

  Main Class: jws HelloWorld

  然后在WEB INF/classes目录下执行命令

  jar umf MANIFEST MF helloworld jar

  把新的MNIFEST MF更新到helloworld jar包中

  注 如果在下面步骤 中的<application desc main class= jws HelloWorld />指定了Main Class方法 此步骤可以省略

   .webstart/jnlp目录下新建一HelloWorld jnlp文件

  <?xml version= encoding= UTF ?>

  <! codebase 属性指出搜索应用程序资源的顶级URL 下面的icon/jar元素都是以这个URL为基本 >

  <jnlp codebase= >

  <information>

  <! 在 开始 运行 菜单中输入 javaws 或 javaws viewer 启动Web Start 会看到客户端已经安装的webstart应用程序 >

  <! title 应用程序标题 vendor 供应商

  title/vendor 元素必须 会显示在用 javaws viewer 命令

  打开的应用程序缓存查看器(Java Application Cache Viewer)中 >

  <title>HelloWorld</title>

  <vendor>Lively Corporation</vendor>

  <description>HelloWorld Test Example for WebStart </description>

  <! homepage 存放有关应用程序的相关文档的URL 如help文件等 仅仅是description作用 >

  <homepage />

  <! icon 指定图标会显示在应用程序缓存查看器中

  在查看器中新建webstart快捷方式到桌面时也会显示为快捷方式图标

  只支持GIF/JPEG格式 其它格式无效 >

  <icon />

  <! splash 在sun的文档中提到会出现在webstart启动时的闪屏中 不过可能由于速度问题 我没有观察到 >

  <icon kind= splash />

  <! 允许离线启动 可以使用javaws offline命令 >

  <offline allowed/>

  </information>

  <resources>

  <! 指定客户端需要安装的j se版本 下面指定为 +

  如果版本是 在链接此jnlp文件时会提示更新j se版本 >

  <j se version= + />

  <! 指定要下载到本地的jar文件(注意 所有的文件都需要打包才能够下载)

  可以包含一些资源文件 如icons/configuration files 可以使用getResource方法取得 >

  <jar />

  </resources>

  <! application desc 必须 指定webstart启动时执行jar文件中的哪个类 >

  <application desc main class= jws HelloWorld />

  </jnlp>

  注

  其中* jnlp文件的语法的详细信息可以在sun网站上查询

  其中javaws命令行的详细参数可以在sun网站上查询

   .webstart目录下建一l

  内容如下

  <a >HelloWorld</a>

   .因为是web应用 所以webstart/WEB INF建一web xml文件

  内容为

  <web app>

  </web app>

  即可 启动tomcat时默认会去找l文件

   .webstart工程放入tomcat/webapps 启动tomcat即可

  启动后会看到helloworld的swing弹出窗口 还有如下图会有一个java控制台

  如果要在HelloWorld java中对本地文件进行操作 就必须对jar文件进行签名 具体步骤如下:

        在HelloWorld java的main方法中对文件进行操作

  File file = new File( E: + /test txt );

  try

  System out println(file createNewFile());

   catch (IOException e)

  e printStackTrace();

  

   .用keytool genkey产生一个私钥(使用keytool –help命令可查看keytool命令参数)

  keytool genkey alias mykey keystore mykeystore keypass mypass storepass mykeystorepass validity

  参数说明如下

   alias mykey 指定密钥的别名 不指定的话默认为 mykey

   keystore mykeystore 指定密钥数据库名 不指定则默认在Documents and                      Settings\\Administrator下生成一个名称为 keystore的文件

   keypass mypass 指定密钥密码 用jarsigner签名时需要

   storepass mykeystorepass 指定密钥数据库密码 用jarsigner签名时需要

   validity 密钥有效时间为 天 不指定的话默认为 天

   .在WEB INF/classes目录下运行keytool命令 会提示输入一些姓名/公司/国家之类的信息

  如果不想一步步输入上面信息 可以直接输入下面命令执行

  keytool genkey alias mykey keystore mykeystore keypass mypass storepass mykeystorepass validity dname cn=Henry Zhou ou=JavaSoft l=SZ S=JS o=Lively c=CN

   dname 参数说明如下

  CN=monName

  OU=anizationUnit

  O=anizationName

  L=localityName

  S=stateName

  C =country

   .执行完毕在WEB INF/classes目录下生成一个名mykeystore的密钥文件 下面要用此密钥文件对jar文件进行加密

  jarsigner keystore mykeystore helloworld jar mykey

  helloworld jar mykey 指定要签名的jar文件和密钥的别名

  运行命令后会提示输入密钥密码和密钥数据库密码

  签名者证书将在六个月内过期

  由于安全原因 在上面的命令中无法指定密钥密码和密钥数据库密码 即使运行

  jarsigner keystore mykeystore helloworld jar mykey keypass mypass storepass mykeystorepass

  仍然会提示输入密钥密码和密钥数据库密码

  注

  其中keytool的详细参数说明可以在sun网站上查询

  

  其中jarsigner命令行的详细参数可以在sun网站上查询

   执行后在helloworld jar/META INF中可以看到生成MYKEY DSA和MYKEY SF文件(可以通过 sigFile MKSIGN指定生成 MKSIGN SF 和 MKSIGN DSA )

  其中SF文件包含了JAR中所有类的一个列表 保存了签名过程中使用的摘要算法 DSA文件是一个二进制密匙文件 扩展名是DSA还是RSA取决你使用的签名算法 默认是DSA 可以在keytool参数中指定RSA算法

   .把生成的helloworld jar包拷贝到webstart/jar/jws目录下

   .在webstart/jnlp/HelloWorld jnlp中添加

  <security>

  <all permissions/>

  </security>

  增加了签名后 如果缺少<security><all permissions/></security>会报错

  启动/运行应用程序时发生错误

  标题 JNLP Argument Solution

  供应商 Lively

  类别 安全错误

  access denied (java io FilePermission E:\\test txt write)

   webstart 工程放入tomcat/webapps 启动tomcat即可 链接jnlp后发现E盘新建一test txt文件 测试成功

  注 网上介绍有时候需要在webstart/WEB INF/web xml文件中配置

  <mime mapping>

  <extension>jnlp</extension>

  <mime type>application/x java jnlp file</mime type>

  </mime mapping>

cha138/Article/program/Java/hx/201311/25831

相关参考

知识大全 Java多线程中run和start的区别

Java多线程中run和start的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  区别调用

知识大全 vs.net中web services入门

  Visual中的XMLWebservices入门  目录  简介用托管代码编写的XMLWebservices使用VisualStudio创建XMLWebservices使用VisualStudio

知识大全 ASP.NET入门教程 12.5 测试Web服务

ASP.NET入门教程12.5测试Web服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 SOA and Web services 新手入门

SOAandWebservices新手入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  内容管

知识大全 ORACLE入门之APACHE WEB SERVER管理

ORACLE入门之APACHEWEBSERVER管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET入门教程 12.4 创建Web服务[2]

ASP.NET入门教程12.4创建Web服务[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET入门教程 12.4 创建Web服务[1]

ASP.NET入门教程12.4创建Web服务[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET入门教程 12.4 创建Web服务[3]

ASP.NET入门教程12.4创建Web服务[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET入门教程 12.3.4 Web方法[2]

ASP.NET入门教程12.3.4Web方法[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET入门教程 12.3.4 Web方法[3]

ASP.NET入门教程12.3.4Web方法[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&