【Java学习笔记】程序发布

简介:

1.要注意的条件 
1)合适版本的JRE已经安装 
2)完整的Class 
3)数据配置文件 
4)可执行命令 

2.JAR文件的基本操作
 
JAR文件实际是ZIP文件,用zip或者unzip就可以操作,但是JAR文件中含有特殊信息。jar命令是专门用来操作JAR文件的,它会自动生成一个叫做mantext的文件,保存有相关信息。 
例如: 
类Rivers 
public class Rivers { 
    public static void main(String arg[]) { 
        System.out.println(Mississippi.getName()); 
        System.out.println(Amazon.getName()); 
        System.out.println(Yukon.getName()); 
    } 

------------------------- 
类Mississippi 
public class Mississippi { 
    public static String getName() { 
        return("Mississippi"); 
    } 

--------------------------- 
类Amazon 
public class Amazon { 
    public static String getName() { 
        return("Amazon"); 
    } 

--------------------------- 
类Yukon 
public class Yukon { 
    public static String getName() { 
        return("Yukon"); 
    } 

创建mantext 
Main-Class:<空格>Rivers<回车> 
指定了主函数所在类。 
Class-Path:Burners.jar 
当这个JAR文件运行时Burners.jar文件中所有的Class都可用。 
然后使用命令创建JAR文件:jar cfm Wetlands.jar mantext *.class 
当然要是有子目录Image,则可以使用jar cfm Wetlands.jar mantext *.class image 
想将当前目录下面所有文件和子文件夹打成一个jar包,并且要求包中内容和当前目录中的相同,则 
jar cfM Wetlands.jar *.class -C images . 
若不想压缩打包,则使用 jar cfm0 Wetlands.jar mantext *.class 
你可以使用下列命令直接运行JAR文件:jave -jar Wetlands.jar 
显示JAR包,则使用jar tf Wetlands.jar 或者jar tvf Wetlands.jar 

3.JAR文件的电子签名
 
私钥加密,公钥解密,主要用于电子认证。本地文件keystore保存了签名的相关信息。alias指定了证书的名字。 
创建密钥对: 
keytool -genkeypair -keystore .keystore -alias moosebreath -validity 3650 
(十年内有效) 
签署JAVA程序: 
jarsigner -keystore .keystore Wetlands.jar moosebreath 
检验是否签署: 
jarsigner -certs -verify Wetlands.jar 

4.Web Start发布
 
1)配置web服务器:打开Apache的配置文件httpd.conf,找到AddType添加如下一行:AddType application/x-java-jnlp-file .jnlp 
2)将程序打JAR包 
3)创建JNLP文件——JNLP应用程序能使应用程序像标准的Java   applets一样通过Web浏览器访问,并且在客户主机上JNLP可以限制为一个安全的“沙盒(sandbox)”。不像applets,JNLP应用程序不运行在客户的浏览器内部;相反,Web浏览器只作为应用程序的一个起点或者安装工具。  以下是一个例子,可以用做模板: 
   1. <?xml version="1.0" encoding="GBK"?> 
   2. <jnlp 
   3.     <!-- 文件兼容的JNLP版本--> 
   4.     spec="1.0+" 
   5.     <!-- 程序的绝对位置,其它的相对URL都相对于这个位置 --> 
   6.     codebase="http://210.43.32.199/apple/" 
   7.     <!-- 本文件的相对URL --> 
   8.     href="draw.jnlp"> 
   9.     <information> 
  10.         <!-- 程序标题 --> 
  11.         <title>画图</title> 
  12.         <!-- 程序制作者 --> 
  13.         <vendor>Kevin Ma</vendor> 
  14.         <!-- 关于这个程序的更多信息的Web页,这个页的URL会被显示在JAWS的应用程序管理器上 --> 
  15.         <homepage href="http://210.43.32.199/apple/drawpic.html/"/> 
  16.         <!-- 下面元素会在JAWS上显示--> 
  17.         <description>画图</description> 
  18.         <description kind="short"> 
  19.         一个简单的画图软件 
  20.         </description> 
  21.         <!-- 指向一个jpg或gif文件的URL,它会被作为一个图标显示在JAWS的应用程序管理器中--> 
  22.         <icon href="images/draw.gif"/> 
  23.         <!--声明程序在被下载后,不用再访问服务器即可运行--> 
  24.         <offline-allowed> 
  25.     </information> 
  26.     <security> 
  27.         <!-- 请求给予足够的权限对本地机进行访问,这就要求所有的jar 
  28.                        都要被签名。对于不访问本地机的程序,此项并非必需 
  29.         <all-permissions> 
  30.         --> 
  31. </security> 
  32.     <resources> 
  33.         <!-- 指定程序支持的JRE版本。可以指定多个,会按优先顺序检查 --> 
  34.         <j2se version="1.4"/> 
  35.         <!-- 指定包含代码和数据的jar文件的相对URL。 --> 
  36.         <jar href="draw_applet.jar"/> 
  37.         <!-- 指定将被按需下载的jar文件 
  38.         <jar href="lib/backgrounds.jar"/> 
  39.         --> 
  40.     </resources> 
  41.     <!-- 指定启动程序的主类 --> 
  42.     <application-desc main-class="draw.DrawPic"/> 
  43. </jnlp> 
4)为这个JNLP创建一个链接: 
<a href="colorPicker.jnlp">ColorPicker</a> 
5)将你的应用程序上传到服务器上 
5.注释 
用途:documentation、编译器指令、运行时检查。 
例子一: 
public class AnnotateOne { 
    @Overrides 
    public String toSting() { 
        return("One"); 
    } 

这个在编译的时候会检查是不是override了方法,要是没有则会出错。 
并且编译时可以消除某一个警告: 
import java.util.Vector; 
@SuppressWarnings("unchecked","unused","semicolon") 
public class AnnotationFour { 
    void show() { 
        Vector vec = new Vector(); 
        vec.add("one"); 
    } 

你可以定义自己的注释: 
import java.lang.annotation.Documented; 
import java.lang.annotation.Retention; 
import java.lang.annotation.RetentionPolicy; 
@Documented 
@Retention(RetentionPolicy.RUNTIME)//annotation的作用期间 
@interface Copyright {//它类似于新创建一个接口类文件 
    String cstr() default "Copyright (c) 2007-2008"; 
    String comp() default "gnuhpc"; 
    int version() default 1; 

@CopyrightVTC 
public class AnnotationFive { 
    public int returnOne() { 
        return(1); 
    } 
}

 




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822255.html,如需转载请自行联系原作者

相关文章
|
1月前
|
Java
java程序导出堆文件
java程序导出堆文件
|
1月前
|
SQL Oracle Java
sql文件批处理程序-java桌面应用
sql文件批处理程序-java桌面应用
25 0
|
1月前
|
存储 Java
Java:编写程序,计算两个数的和、差、积、商和余数。docx
Java:编写程序,计算两个数的和、差、积、商和余数。docx
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第四十一题:编写程序描述影视歌三栖艺人。
【Java每日一题】——第四十一题:编写程序描述影视歌三栖艺人。
25 0
|
2月前
|
监控 负载均衡 Dubbo
|
1月前
|
Java 程序员 编译器
【详识JAVA语言】面向对象程序三大特性之二:继承
【详识JAVA语言】面向对象程序三大特性之二:继承
47 2
|
8天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
32 3
|
23天前
|
Java
elasticsearch使用java程序添加删除修改
elasticsearch使用java程序添加删除修改
9 0
|
30天前
|
Java
java程序
re是java运行时的环境,包含jvm和运行时所需要的类库 jdk是java开的程序包,包含jre和开发人员使用的工具 jvm就是我们常说的java虚拟机,他是整个java实现跨平台的最核心 的部分,所有的java程序会首先被编译为.class的类文件,这种类文 件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统 相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释 给本地系统执行。 只有jvm还不能成class的执行,因为再解释class的时候jvm需要调用 解释所需要的类库lib,而jre包含lib类库。jvm屏蔽了与具体操作系 统平台相关的信息,使得java程
17 0
|
1月前
|
存储 前端开发 Java
java学习笔记
java学习笔记
61 0