我们经常使用javac -d命令和java -D命令来进行java程序的编译,现在我就来说一下这两个命令的区别。javac -d指将该java的字节码编译到指定的目录中去。java -D使用来设置当前程序的系统环境变量。实例如下:
javac -d
// 在当前目录下面创建一个classes目录,用来存放编译后的字节码文件
C:UsersadminDesktop>mkdir classes
// 使用-d命令将GetProp.java的字节码文件编译到classes目录下面
C:UsersadminDesktop>javac -d classes GetProp.java
// classes目录中的文件列表如下
C:UsersadminDesktop>dir classes
2015/04/06 11:53 <DIR> .
2015/04/06 11:53 <DIR> ..
2015/04/06 11:53 483 GetProp.class
1 个文件 483 字节
2 个目录 58,193,809,408 可用字节从上面的实例可以看出-d命令就是指定字节码生成目录。
java -D
// 该类的一个功能就是获取系统环境变量logData值(保存到:GetProp.java文件中)
public class GetProp {
public static void main(String[] args) {
System.out.println( System.getProperty("logData") );
}
}
// 运行如下:
// 编译GetProp程序
C:UsersadminDesktop>javac GetProp.java
// 执行GetProp程序,并且通过-D命令设置系统参数logData
C:UsersadminDesktop>java "-DlogData=D: estdatalog" GetProp运行结果:
D: estdatalog
通过上面的实例可以看出java -D命令是用来设置系统参数的,可以设置多个系统参数,如下:
C:UsersadminDesktop>java "-DlogData=D: estdatalog" "-DdataDir=D: estdata" GetProp