java、javac和jar的使用
来源:互联网 发布:一个java项目组多少人 编辑:程序博客网 时间:2024/04/28 15:05
文件目录结构
root src p1\Universe.java Sun.java p2\Star.java classes1 p1\Sun.class p1\Universe.class classes2 p2\Star.class
Universe.java和Sun.java同在p1包内,Star.java是在p2包内。
Universe定义如下,引用了同包的Sun类和异包的Star类。
package p1;import p2.Star; // 引用了p2包的Star类public class Universe { public static void main(String[] args) {Sun sun = new Sun(); // Sun类在p1包Star star = new Star(); // Star类在p2包 System.out.println("Universe"); }}
编译java文件
为了编译Universe,首先要分别编译Sun和Star类,以下命令均在root下输入,注意编译的目的地目录classes#必须存在。
1. 编译Sun类,并把class文件放在classes1目录下:
javac src\p1\Sun.java -d classes1
javac src\p2\Star.java -d classes2
javac -cp classes1;classes2 src\p1\Universe.java -d classes1注意-cp给的是class文件所在包(p1, p2)的位置。Windows使用分号;分割,Linux使用冒号:分割。
如果class文件都放在同一个目录classes下,用一行命令完成上面三条命令:
javac src\p1\*.java src\p2\*.java -d classes
运行Universe:
java -cp classes1;classes2 p1.Universe-cp路径中要包含Universe自己所在的位置和所使用的类所在的位置。-cp一定是用包的位置。main类要含包名(p1.Universe)。
打成jar包
jar cf universe.jar -C classes1 . -C classes2 .c是create,f是file,jar文件名,包含的文件。这里用了-C dir . 是说把dir的内容放进jar包中,而不包含dir自己这个目录。
打包时如果要含manifest,则新建一个manifest.txt:
Main-Class: p1.Universe注意要含包名。manifest最后一定要空一行。
jar cmf manifest.txt universe.jar -C classes1 . -C classes2 .m是manifest。
不想新建manifest文件的话:
jar cfe universe.jar p1.Universe -C classes1 . -C classes2 .
在manifest中添加classpath,这样在运行时就不用指定-cp了:
Class-Path: Star.jar
在manifest中添加版本信息:
Name: java/util/Specification-Title: Java Utility ClassesSpecification-Version: 1.2Specification-Vendor: Example Tech, Inc.Implementation-Title: java.utilImplementation-Version: build57Implementation-Vendor: Example Tech, Inc.
包密封(sealing),保证在包中使用的类都是在jar包中的:
Name: com/package/Sealed: true
显示jar包内容:
jar tf universe.jar
jar xf universe.jar
运行jar包:
java -jar universe.jar
java -cp universe.jar p1.Universe
java -cp universe.jar;classes2 p1.Universe
0 0
- java、javac和jar的使用
- javac、java和jar命令使用实践
- java javac jar 使用
- java+javac+jar命令的简单使用
- Javac java jar 命令使用
- 编译json(练习javac、jar和java命令的使用)
- java和javac命令的使用
- JAVAC和JAVA命令的使用
- javac 和java 使用的 -classpath 参数
- linux系统alternatives使用(java,javac,jar)
- inux系统alternatives使用(java,javac,jar)
- inux系统alternatives使用(java,javac,jar)
- java javadoc jar javac
- java命令中javac和java的使用
- java源码批量编译-javac、jar、java及其ANT使用
- 手动编译打包执行java类(javac,java,jar使用)
- javac和java的使用方法
- javac 和java 的命令
- 线性表的顺序存储
- POJ 1382 Cover The Island
- GO语言学习:使用io.copyN实现网络文件传输
- MySQL-Python 学习(三)-创建表格
- PullToRefreshScrollView下拉刷新、上啦加载更多、里面并解决与ListView数据加载问题(需要PullToReFerensh库)
- java、javac和jar的使用
- Jenkins-svn: E175002: OPTIONS request failed on URL
- iOS控件TextView添加placeholder属性的两种方法
- 相位相关影像匹配算法
- ResourceBundle用法
- nginx配置二级域名访问集群tomcat和nginx windows版安装 启动
- 高精度大数的模板--c++代码
- Windows 下令 OpenCV 支持 h.264 视频编码的方法
- oracle 函数