第17章:包、jar存档文件和部署(发布程序)
Java程序,是由一组类所组成的,这就是开发过程的输出。本章将讨论如何组织、包装和部署Java程序。
如何组织Java代码文件?
组织代码文件的方案有很多。建议一种几乎已经成为了标准的组织方案——在 source目录下放置 .java 源文件;在 classes 目录下放置 .class 编译结果。使用 -d 选项,可以指定编译结果的存储目录。
// -d 用于指定编译结果的存储目录
javac -d ../classes MyApp.java
mainifest文件 与 JAR包
JAR即 Java ARchive。这种文件是个 pkzip 格式的文件,它能够让你把一组类文件包装起来,所以交付时只需要一个 JAR文件即可。它类似 Linux上的 tar命令。可执行的 JAR 代表用户不需要把文件抽出来就能运行,这个秘密就在于 mainifest文件,它携带着 JAR包的若干信息,并且能告诉Java虚拟机哪个类中含有 main() 方法。
如何创建 JAR 包?
cd myproject/classes
jar -cvmf mainifest.txt app.jar *.class
或者
jar -cvmf mainifest.txt app.jar MyApp.class
如何执行 JAR包?
cd myproject/classes
java -jar app.jar
大部分的Java应用,都是以可执行的JAR包来部署的。Java虚拟机能够从JAR包中载入类,并调用该类中的 main() 方法。事实上,整个应用程序都可以包在 JAR包中。一旦 main() 方法开始执行,Java虚拟机就不会在乎类是从哪里来的,只要能够找到就行。其中一个来源就是 classpath 指定位置的所有 JAR文件。
Java虚拟机必须要能找到JAR,所以它必须在 classpath 下。让 JAR曝光的最好方式就是把 JAR放置在工作目录下。Java虚拟机会检查 JAR包中的 manifest文件以寻找入口,如果没有找到就会发生运行期间异常。
根据操作系统的设置,双击 JAR文件也可以直接运行 JAR文件。
如何防止类名、包名的命名冲突?
用包防止类名的命名冲突。
用 domain 名称防止包名的命名冲突。
./source/cn/geekxia/*.java
./classes/cn/geekxia/*.class
如何列举 JAR包中的文件?
jar -tf app.jar
如何解压 .jar包?
jar -xf app.jar
关于 Java Web Start 技术的一些知识点
Java Web Start技术让你能够从网站来部署独立的客户端程序。Java Web Start有个必须要安装在客户端的helper app。Java Web Start程序由两个部分组成:可执行的JAR包和.jnlp文件。 .jnlp文件是用来描述Java Web Start应用程序的XML文件。它有tag以指定JAR的名称和位置,以及带有 main()的类名称。当浏览器从服务器上取得 .jnlp文件时,浏览器就会启动 Java Web Start的 helper app。Java Web Start会读取 .jnlp文件来判断要从服务器上下载的可执行JAR包。取得JAR包之后,它就会调用 .jnlp指定的 main()。
标签:文件,Head,Java,读书笔记,jar,app,JAR,Start From: https://www.cnblogs.com/LvJinshuai/p/16916900.html