我正在读一本关于高级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 ..
命令有何不同?有谁可以清楚解释这个,拜托?
在类路径值中使用的;
和:
delimiters用于将多个文件夹分隔为类路径的值。
;
用于在Windows操作系统下分隔文件夹。
:
用于在* nix OS下分隔文件夹。
与-d classes
结合使用的classes:.
参数意味着已编译的.class
文件将放在classes文件夹中,而不是基于包层次结构的标准放置。
因此,包含类作为类路径的附加参数允许在编译新的Java类时引用先前编译的类文件。 .
是对已执行javac
命令的目录的类路径引用 - 当前工作目录。
这里唯一的问题是混合两种分隔符类型。为什么这样做 - 我不知道。
参考文献: