我们经常使用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