[core java学习笔记][第十章部署应用程序]
来源:互联网 发布:广州恒大淘宝股票 编辑:程序博客网 时间:2024/05/16 07:26
第10章 部署应用程序和applet
- jar文件
- Java Web Start
10.1 jar文件
jar文件就是一个压缩了类,图像和声音的ZIP压缩文件
创建一个新的JAR文件应该使用的常见命令格式:
jar cvf JARFileName File1 File2 ...
例如
jar cvf CalculatorClasses.jar *.class icon.gif
通常,jar 的命令格式如下
jar options File1,File2,.....
以下列出jar程序的可选项
一般 -cvf 常用即可
10.1.1 清单文件
- 命名为
MANIFEST.MF
用于描述归档特征的清单文件。 要想创建一个包含自己清单文件的jar应该用这样的命令
jar cfm JARFileName ManifestFileName ....
例
jar cfm MyArhive.jar manifest.mf com/mycompany/mypkg/*.class
要想更新一个已有JAR文件的清单,执行一下指令
jar ufm MyArchive.jar manifest-additions.mf
10.1.2 可运行JAR文件
两种方式
可以使用jar命令中的e选项指定程序的入口点
jar cvfe MyProgram.jar MainAppClass otherclassfile
或者,再清单文件指定应用程序的主类,最后一行必须以换行符结尾
Main-Class: MainAppClass
- 还有第三方打包器,能将jar文件转换为.exe的Windows程序,查找和加载Java虚拟机,甚至再没有找到JVM的时候告诉用于做什么
10.1.3 资源
- 图像和声音文件
- 带有消息字符串和按钮标签的文本文件
- 二进制数据文件
要调用资源有一下几步
- 获得具有资源的Class对象。例如,
AboutPanel.class
,只能调用这个对象目录下的资源 - 如果资源是一个图像或声音文件,那么就需要调用
getresource(filename)
获得作为URL的资源位置,然后利用getImage
或getAudioClip
进行读取 - 其他资源用getResourceAsStream方法读取文件中的数据
读取图像
URL url= ResourceTest.class.getResource("about.gif");Image img=new ImageIcon(url).getImage();//或者URL aboutURL = getClass().getResource("about.gif");Image img = new ImageIcon(aboutURL).getImage();意思是再ResourceTest.class所处的当前目录下查找
读取文本
InputStream stream=ResourceTest.class.getResourceAsStream("about.txt");Scanner in=new Scanner(stream);
- 获得具有资源的Class对象。例如,
还可以利用相对路径和绝对路径
10.1.4 密封
Java可以密封包,如果不密封包,其他类就有可能放在这个包中,进而访问包可以见性
如何密封?
修改清单文件
Name: com/mycompany/util/Sealed: trueName: com/mycompany/misc/Sealed: false
然后利用上面所学的打包,或者更新包的清单文件。
10.2 Java Web Start
略
10.3 applet
略
10.4 应用程序首选项存储
- 属性映射
- 首选项API
10.4.1 属性映射
属性映射(property)是一种KEY/VALUE对的数据结构。常用来存放配置信息。
三个特性
- key和value都是String
- 容易从文件读入或读出
- 用二级表存放默认值
实现这样的类叫
java.util.Properties
放入
Key/value
Properties settings=new Properties();setting.put("width","200");setting.put("title","Hello,World!");
使用
store
方法保存到文件,必须要检查异常,否则编译不通过FileOutputStream out = new FileOutputStream("a.out")settings.store(out,"hello");
使用
load
加载这些文件FileInputStrem in = new FileInputStrem("a.out");settings.load(in);
使用
getProperty
获取value两种方式settings.getProperty("title"); 直接获得key=title的value,不存在返回nonesettings.getProperty("title","Default title"); 不存在时返回第二个参数
构造函数可以直接用别的Properties来初始化
Properties defaultSettings= new Properties();Properties settings=new Properties(defaultSettings);
以下是完整代码
import java.util.*;import java.io.*;public class test{ public static void main(String args[]) { Properties settings=new Properties(); settings.put("zhouyong","1111"); settings.put("luan","2222"); //wirte try{ FileOutputStream out = new FileOutputStream("a.out"); settings.store(out,"hello"); } catch (IOException ex) { ex.printStackTrace(); } //read try{ FileInputStream in = new FileInputStream("a.out"); settings.load(in); } catch (IOException ex) { ex.printStackTrace(); } }}
10.4.2 Preferences API
- 一个不以平台变更的中心配置库,所有当前机器的java程序公用
- 能通过xml来导入导出
- value值可以为int ,等类型
- 具体怎么用以后慢慢学
0 0
- [core java学习笔记][第十章部署应用程序]
- Core java学习笔记
- Java Core 学习笔记--第三章
- [core java学习笔记][第五章继承]
- 《core java》学习笔记-第三章
- core java学习笔记(1)
- core java 学习笔记(2)
- core java学习笔记(3)
- core java学习笔记(4)
- Core java学习笔记(二)
- java学习笔记--第十天
- 第十三天java学习笔记
- java 学习笔记(core java)部分
- java反射学习笔记-core java
- 第五章 继承(core java 卷1学习笔记)
- [core java学习笔记][第四章对象与类]
- [core java学习笔记][第六章接口与内部类]
- [core java学习笔记][第十一章异常断言日志调试]
- Android开发 打造自己的Annotation框架
- [core java学习笔记][第六章接口与内部类]
- Codeforces 656 B. Scrambled(April Fools Day Contest 2016)
- Android开发解决The connection to adb is down, and a severe error has occured. 问题
- import com.sun.image.codec.jpeg.JPEGCodec不通过 找不到包
- [core java学习笔记][第十章部署应用程序]
- HDU - 5288-OO’s Sequence-数学+分类再二分+枚举+contribution costing
- 机器学习:贝叶斯网络入门
- SDAU课程练习2 1017
- dns 解析,一个域名解析到多个ip地址
- java中int和Integer的理解
- Android关闭输入法
- 【笔试/面试】—— 奇葩 C/C++ 语法题(二)
- [core java学习笔记][第十一章异常断言日志调试]