Head First Java学习笔记(17):包、jar存档文件和部署
Java的部署
Java程序是由一组类所组成的,那就是开发过程的输出。
部署的选择:
1.本机:整个程序都在用户的计算机上以独立、可携的GUI执行,并以可执行的Jar来部署。
2.两种之间的组合:应用程序被分散为在用户本地系统运行的客户端,以及连接到执行应用程序服务的服务器部分。
3.远程:整个应用程序都在服务器端执行,客户端通过非Java形式,可能是浏览器的装置来存取。
组织类
1.组织类就是讲源文件与类文件分离。
2.编译时加上“-d”选项,可以指定编译过的程序要摆在哪里。
1.编译
%cd MyProject/source
%javac -d ../classes MyApp.java
2.编译全部的.java文件
%javac -d ../classes *.java
3.执行程序
%cd MyProject/classes
%java MyApp
目录层次:
JAR
1.JAR就是JavaARchive,这是一个pkzip格式的文件,它把一组类文件包装起来。所以交付时只需要一个JAR文件。
2.全大写的JAR是说包装起来的文件,全小写的jar是用来整理文件的工具。
3.想要创建出可执行的JAR,需要创建出manifest文件。
创建可执行的JAR:
1.确定所有的类文件都在classes目录下。
2.创建manifest.txt来描述哪个类带有main()方法。该文件内容如下:
Main-Class:
MyApp//后面没有.class
3.执行jar工具来创建带有所有类以及manifest的JAR文件。
%cd MiniProject/classes
%jar -cvmf manifest.txt app1.jar *.class
或者
%jar -cvmf manifest.txt app1.jar MyApp.class
关于-cvmf:
-c:创建新的归档文件
-v:在标准输出中生成详细输出
-m:包含指定manifest文件
-f:指定归档文件名
执行JAR:
1.有些系统直接双击就可以,如Windows和Mac OS X。
2.
%cd MyProject/classes
%java -jar app1.jar
包
包可以防止命名冲突,但这只会在包名称保证不会重复的情况下起作用。最好的方法是在前面加上domain名称。
把类包进包中:
1.选择包名称
2.在类中加入包指令。这条指令必须比import还要靠上
package com.headfirstjava;
import javax.swing.*;
public class PackageExercise {}
3.设定相对应的目录结构:你必须把类放在与包层次结构相对应的目录结构下
编译与执行包:
1.加上-d来编译:
%cd MyProject/source
%javac -d ../classes com/headfi rstjava/PackageExercise.java
2.执行程序:
%cd MyProject/classes
%java com.headfi rstjava.PackageExercise
3.如果classes目录下包的目录结构没有建好,-d会帮你建好。
包创建JAR:
1.确定所有类文件都在classes目录下对应的包结构中。
2.创建manifest.txt文件来描述哪个类带有main()。
Main-Class:
com.headfi rstjava.PackageExercise
3.执行jar工具
%cd MyProject/classes
%jar -cvmf manifest.txt packEx.jar com
manifest文件:
1.将JAR内容列出:% jar -tf packEx.jar
2.解压:% cd Skyler
% jar -xf packEx.jar
jar会自动创建META-INF目录和MANIFEST.MF文件。
Java Web Start
用户通过单击Web页面中的链接来启动Java Web Start应用程序。一旦应用程序下载,它就会在浏览器之外运行,就像其他独立的Java应用程序一样。实际上,Java Web Start应用程序只是一个在Web上分发的可执行JAR。
Java Web Start 工作方式:
1.客户端单击Web页面的JWS应用程序链接(.jnlp文件)。
2.Web服务器(HTTP)获取请求并返回一个.jnlp文件(不是JAR)。
3.Java Web Start由浏览器启动,JWS助手应用程序读取.jnlp文件,并向服务器请求MyApp.jar文件。
4.Web服务器发送请求的. jar文件。
5.Java Web Start获取JAR并通过调用指定的main()方法启动应用程序(就像可执行的JAR一样)。
.jnlp文件:
<?xml version=”1.0” encoding=”utf-8”?><jnlp spec=”0.2 1.0”codebase=”http://127.0.0.1/~kathy”href=”MyApp.jnlp”><information><title>kathy App</title><vendor>Wickedly Smart</vendor><homepage href=”index.html”/><description>Head First WebStart demo</description><icon href=”kathys.gif”/><offline-allowed/></information><resources><j2se version=”1.3+”/><jar href=”MyApp.jar”/></resources><application-desc main-class=”HelloWebStart”/>
</jnlp>
创建与部署Java Web Start的步骤:
1.将程序制作成可执行的JAR。
2.编写.jnlp文件。
3.把.jnlp与JAR文件放到Web服务器。
4.对Web服务器设定新的mime类型。
application/x-java-jnlp-file
5.设定网页连接到.jnlp文件。
<HTML><BODY><a href=”MyApp2.jnlp”>Launch My Application</a></BODY>
</HTML>
Head First Java学习笔记(17):包、jar存档文件和部署相关推荐
- java学习笔记16--I/O流和文件
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input Output)流 IO流用来处理 ...
- java学习笔记(八)----包,jar文件
包 //建立包后同一个文件中的类都属于这个包,所有的类都必须按包名所对应的目录,在硬盘中存放.同一个包中的类在相互调用时,是不用指定包名的. ---在编译时对于下面这个类,用这样的方法 ja ...
- Java学习笔记17
Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 我们来看看关于finali ...
- Java学习笔记17:Java_Set集合_TreeSet集合_二叉树_HashSet集合
文章目录 1.Set集合 1.1Set集合概述和特点[应用] 1.2Set集合的使用[应用] 2.TreeSet集合 2.1TreeSet集合概述和特点[应用] 2.2TreeSet集合基本使用[应用 ...
- Java学习笔记17(面向对象十:综合案例)
在面向对象这个专题的最后 结合前面多篇文章,用到了面向对象的很多方面知识,做了一个简单的案例: 饭店案例: package hotel;/** 酒店的员工类* 员工共同特点:姓名,工号,工作方法*/ ...
- Java学习笔记——JDBC读取properties属性文件
Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ...
- Java学习笔记:检测一堆图片文件中是否有包含二维码的
案例一 package part2;import com.google.zxing.Result; import com.yzk18.commons.IOHelpers; import com.yzk ...
- java学习笔记十三
11. 凡是继承了FilterOutputStream或FilterInputStream的类都是过滤流,也就是说他们不能直接跟目标(键盘,文件,网络等,节点流可以)数据打交道,只能包装 Intput ...
- java学习笔记 head first java
文章目录 golang to java Head First Java final 一些与众不同的设计 staic初始化 primitive类型的包装 format 静态的import 内部类 常用包 ...
最新文章
- Toad 登陆数据库
- python需要php吗-学python需要学linux吗
- SPList和SPDocumentLibrary 通过代码更新审批状态
- CVPR 2019 | 国防科大提出双目超分辨算法,效果优异代码已开源
- pytorch查看loss曲线_pytorch loss总结与测试
- c语言一年日历程序,c语言日历程序
- pytorch 入门学习反向传播-4
- _MSC_VER简介与使用
- 猎豹网校 java,猎豹网校JAVA编程思想高级视频教程
- 2018大华软件竞赛——模拟赛——第二题
- 小管家进销存_管家婆物联宝微订货V2.3发版公告
- 云计算与大数据” 研讨会:迎来新的科学价值
- 超牛逼的几款轻量级笔记软件!
- FAGL_FCV 外币评估 原因代码替代
- 贪心算法实例(五):小船过河问题
- 【CSDN博客频道携手图灵教育】“移动开发之我见”主题征文活动
- 跨平台应用 Qt 对决 HTML5
- 用友文件服务器恢复,用友U8账套数据恢复及备份.doc
- 多线程使用jxcell 解密xls文件,xlxs文件不支持.暴力破解6位数的Excel密码,jxcell下载
- win10无法播放测试音调怎么办?