17.发布程序
包,jar存档文件和部署
该是放手的时候了
部署应用程序
- 本机
- 两者之间的组合
- 远程
将源代码与类文件分离
-d
%cd MyProject/source
%javac -d ../classes *.java(或者单个MyApp.java)
把程序包进JAR
创建可执行的JAR
- 确定所有的类文件都在classes目录下
- 创建mainfest.txt来描述哪个类带有main方法
- Main-Class: MyApp
- 执行jar工具来创建带有所有类以及manifest的jar文件
- cd MiniProject/classes
- jar -cvmf manifest.txt app1.jar *.class 或 jar -cvmf manifest.txt app1.jar MyApp.class
- 执行jar
- java -jar app1.jar
把类包进包中
用包防止类名冲突
防止包名冲突
- 反向使用domain的包名称
把类包进包中
- 选择包名称
- 在类中加入包指令
- 设定相对应的目录结构
编译与执行包
其实-d选项真的很酷
-d 选项会要求编译器将编译结果根据包的结构来建立目录并输出
以包创建可执行jar
那manifest文件会跑到哪里
要点
- 将项目组织一下以让源代码和类文件分开在不同的目录下
- 标准的组织化结构是创建出项目目录,然后阿紫其下建立source和classes目录
- 将类以包来组织,并在前面加上域名称以防止命名冲突
- 在程序源文件最前面加上包指令可以吧类包进包中
- package com.domain
- 类必须呆在完全相对应于包结构的目录中才能包进包中.以com.domain.Foo来说Foo这个类必须放在com目录下domain这个目录中
- 要让编译过的类可以放在争取的包目录结构中,使用 -d 编译标识:
- cd source
- javac -d ../class com/domain/Foo.java
- 切换到classes目录然后指定完整的类名称来执行程序
- java com.domain.foo
- 你可以把类包进Jar包中,它的格式是根据pkzip制作的
- 将描述哪个类带有main的manifest包进JAR中可以制作出可执行的JAR文件.manifest文件是个带有像下面这样设定的文本文件,记得最后要换行才能保证正确
- Main-Class: com.domain.foo
- 用下面的命令来创建JAR文件:
- jar -cvfm manifest.txt Myjar.jar com
- JAR中的结构必须完全的符合包的目录结构
- 一下面的命令格式来执行JAR
- java -jar Myjar.jar
Java Web Start的工作方式
- 客户端点击某个网页上jws应用程序的连接
- web服务器收到请求发出.jmlp文件给客户端的浏览器
- 浏览器启动jws,jws的helper app 读取.jnlp然后向服务器请求Myapp.jar
- web服务器发送.jar文件
- jws取得jar并调用指定的main()来启动应用程序
jnlp 文件
创建jws 的步骤
- 将程序制作可执行的jar
- 编写.jnlp
- 吧.jnlp与jar文件放到web服务器
- 对web服务器设定新的mime类型
- 设定网页连接到.jnlp
- 本文链接: https://halo.cjh.kim/archives/headfirstjava17md
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!