本文介绍如何使用java和javac命令完成对java源文件(带有package)的编译和执行
结果
###################
# 编译
###################
# 构建输入文件(待编译的java源文件路劲)
find ./src -name "*.java" > source.list
# 编译,按源文件的package的层次结构,自动建立相应的目录,并存入classes目录下
javac -d classes @source.list
# 清除输入文件
rm source.list
###################
# 运行
###################
# 用-cp明确类文件的根目录(也就是所谓的classpath)
java -cp <类文件输出根目录,如:./classes> <入口类的全限定名[package.class]>
参数解释
javac
功能:
编译java文件
-d:
- 指定编译的输出目录,输出的类将根据类所属的package,放入对应的目录中
- 如果目录不存在,将被自动创建
- 如果没有指定输出目录, 默认输出目录为类文件所在的目录位置
@<文件名>
将输入参数以文件的形式传入,例如:所有需要编译的源文件的路径
java
-cp (-classpath):
指定查找类文件的目录(根目录)
main函数所在的类是启动java程序时第一个要查找到的类
注意
package与类文件的目录结构紧密相关,必须一一对应,如果不对应将会导致类无法被正确加载
正式工程中每个类都应该有package,default package只适用于临时情况