我们经常使用javac -d命令和java -D命令来进行java程序的编译,现在我就来说一下这两个命令的区别。javac -d指将该java的字节码编译到指定的目录中去。java -D使用来设置当前程序的系统环境变量。实例如下:
javac -d// 在当前目录下面创建一个classes目录,用来存放编译后的字节码文件
C:\Users\admin\Desktop>mkdir classes
// 使用-d命令将GetProp.java的字节码文件编译到classes目录下面
C:\Users\admin\Desktop>javac -d classes GetProp.java
// classes目录中的文件列表如下
C:\Users\admin\Desktop>dir classes
2015/04/06 11:53
2015/04/06 11:53
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:\Users\admin\Desktop>javac GetProp.java
// 执行GetProp程序,并且通过-D命令设置系统参数logData
C:\Users\admin\Desktop>java "-DlogData=D:\test\data\log" GetProp
运行结果:
D:\test\data\log
通过上面的实例可以看出java -D命令是用来设置系统参数的,可以设置多个系统参数,如下:C:\Users\admin\Desktop>java "-DlogData=D:\test\data\log" "-DdataDir=D:\test\data" GetProp