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.
3.
4. spec="1.0+"
5.
6. codebase="http://210.43.32.199/apple/"
7.
8. href="draw.jnlp">
9.
10.
11.
画图12.
13. Kevin Ma
14.
15.
16.
17. 画图
18.
19. 一个简单的画图软件
20.
21.
22.
23.
24.
25.
26.
27.
31.
32.
33.
34.
35.
36.
37.
40.
41.
42.
43.
4)为这个JNLP创建一个链接:
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);
}
}