JAR文件
1 Jar文件使用了 ZIp来压缩,可以包含类文件,以及资源文件 如(图像 声音,文本,二进制等)
2 通过jar cvf file1 file2…. 创建jar包
3 每个Jar文件 还包含 用于描述归档的清单文件 MANIFEST.MF
4 可以使用jar 的 e 选项 指定 程序的入口
jar cvfe My.jar com.xxxx.xxx.Main
5 通过 Java -jar xxx.jar 来启动应用程序
6 java处理资源 首先要获得 具有资源的Class对象
如果资源是 声音或图像 调用 getResource(filename)获得资源位置,再用getImage 或 getAudioClip实现
其他的资源 则通过 getResourceAsStream(”about.txt”)
资源文件 可以放在 类文件的同一目录,也可以放在子目录内
7 如果想要密封包,可以创建一个manifest.mf 文件,添加一行 sealed : true,将其一起打包即可
存储程序首选项
1 通过属性映射实现
2 属性映射的缺点在于 难以找到一个统一的配置文件位置 和 多个Java程序的属性映射文件 命名容易冲突
3 可以使用preference类,该类以一种平台无关的方式提供了 存储配置文件的 中心存储库
4 preference 使用 树状结构命名 避免命名冲突
服务加载器
1 开发会采用插件体系结构的应用,JDK提供了一个加载插件的简单机制
2 利用ServiceLoader类 可以很容易的 加载 符合公共接口的 插件
3 定义一个接口(或者,如果愿意也可以定义一个超类),其中包含服务的各个实例应当提供的方法,服务提供者可以提供一个或多个实现这个服务的类,实现类可以放在任意包中,而不一定是服务接口所在的包。每个实现类必须有一个无参数构造器。
4 现在把这些类的类名增加到META-INF/services目录下的一个UTF-8编码文本文件中,文件名必须与完全限定类名一致
5 程序就可以通过ServiceLoader 加载 插件