1.本地jar包
整个程序都在用户计算机上以独立,并以可以执行的jar来部署
将源代码与类文件分离 (-d选项)
%cd MyProject/source
%javac -d ../classes MyApp.java //将编译生成的class指定到 ../classes 目录
把程序包进jar包
创建可执行的jar
1.确定所有的类文件都在classes目录下
2.创建manifest.txt文件来描述那个类带有main()方法
该文件带有下面这一行 Main-class: MyApp (此行后面要有换行)
3.执行jar工具来创建带有类以及manifest的JAR文件(jar 里面没有源文件)
%cd MiniProject/claddes
%jar -cvmf minifest.txt app1.jar *.class 或 %jar -cvmf minifest app1.jar MyApp.class
执行jar(大部分完全在本机上的Java应用程序都是以可执行的JAR来部署)
java虚拟机能够从JAR中载入类,并调用该类的main()方法
java -jar app1.jar
2.把类包在包中
包可以防止类名冲突,最好的方式是在前面加上domain名称
反向使用domain的包名称
1.选择包名称
以com.headfirstjava为例 类名称是PackageExercise 因此类名称是com.headfirstjava.PackageExercise
2.在类中加入包指令
package com.headfirstjava; (包指令放在类文件的最开始的位置)
import javax.swing.*;
class PackageExercise{
//TODO
}
3.设定相对应的目录结构
如果完整名称是com.headfirstjava.PackageExercise的话,则你必须将PackageExercise源文件放在名为headfirstjava的目录下
此目录必须在com目录下
编译与执行包
加上-d选项来执行编译
%cd Myproject/source
%javac -d ../classes com/headfirstjava/*.java
执行程序
%cd MyProject/classes
%java com.headfirstjava.PackageExercise
-d选项 如果classes目录下包的结构还没有建立好, -d选项会帮你自动处理这些工作
以包创建可执行的jar
1.确定所有的类文件都放在class目录下正确对应的包结构中
2.创建manifest.txt文件来描述那个类带有main()方法
在manifest中写入 Main-Class:com.headfirstjava.PackageExercise (接换行),然后把manifest文件放在classes目录下
3.执行jar工具创建带有目录结构与manifest的JAR文件
只要从com开始就行 下面的包会被自动处理
%cd MyProject/classes
%jar -cvmf manifest.txt packEx.jar com //只用加入com包就可以
条件和解压jar命令
1.将JAR内容列出
jar -tf packEx.jar
2.抽取文件
jar -xf packEx.jar
3.Java Web Start
运用java web start你的应用程序可以从浏览器上执行首次启动 但他运行起来几乎像是个独立的应用而不受浏览器的束缚
一旦被下载到计算机上就会被保留下来
java web start 的hepler app 主要目的是用来管理下载,更新和启动jws的程序
java web start的工作方式
1.客户端点击某个网页上的JWS应用程序的链接(.jnlp文件)
2.Web服务器收到请求发出.jnlp文件给客户端的浏览器
jnlp文件是个描述应用程序可执行JAR文件的XML文件
3.浏览器启动java web start JWS的happer app 读取.jnlp文件,然后像服务器请求MyApp.jar
4.web服务器发送.jar文件
5.jws取得JAR并调用指定的main()来启动应用程序
创建和部署 java web start
1.将程序制作成可执行的JAR
2.编写.jnlp
3.把.jnlp与jar文件放到Web服务器
4.对WEB服务器设定新的mime类型
5.设定网页链接到.jnlp文件