我正在阅读一本有关高级Java的书,并被指示使用以下命令编译.java
文件:
javac -d classes -classpath c:\somepath\somejar.jar;classes:.
我想知道:
:.
这些符号代表一个参数吗?:
关键字之后的.
和classes
分别是不同的参数吗?他们代表什么?classes:.
之后再提供somejar.jar
?和所有这些组合一样:javac -d classes -classpath c:\somepath\somejar.jar;classes:.
javac -d classes -classpath c:\somepath\somejar.jar;classes:
javac -d classes -classpath c:\somepath\somejar.jar;classes
javac -d classes -classpath c:\somepath\somejar.jar;
工作完全相同。它们产生完全相同的.class
文件(每个226个字节),当我在Web容器中部署它们时,它们的工作原理相同。
那么这些符号有什么意义呢?以上四个javac ..
命令有何不同?有人可以清楚地说明这一点吗?
答案 0 :(得分:0)
使用classpath值中的;
和:
分隔符来分隔多个文件夹作为classpath的值。
;
用于在Windows操作系统下定界文件夹。
:
用于在* nix操作系统下定界文件夹。
-d classes
参数与classes:.
结合使用意味着,已编译的.class
文件将放置在classes文件夹中,而不是基于包层次结构的标准放置。
因此,将类作为类路径的附加参数包含在内,可以在编译新的Java类时引用以前编译的类文件。 .
是对从中执行javac
命令的目录(当前的工作目录)的类路径引用。
这里唯一的问题是两种分隔符类型的混合。为什么要这样做-我不知道。
参考文献: