您的位置:首页 > 编程语言 > Java开发

[core java学习笔记][第十章部署应用程序]

2016-04-02 16:51 567 查看

第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);


还可以利用相对路径和绝对路径

10.1.4 密封

Java可以密封包,如果不密封包,其他类就有可能放在这个包中,进而访问包可以见性

如何密封?

修改清单文件

Name: com/mycompany/util/
Sealed: true

Name: 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,不存在返回none

settings.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 ,等类型

具体怎么用以后慢慢学
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: