为什么我必须使用:classes:。-classpath 参数中的 jar 之后的符号?

我正在阅读一些关于高级Java的书,我被指示使用以下命令编译文件:.java

javac -d classes -classpath c:\somepath\somejar.jar;classes:.

我想知道:

  1. 这些符号是表示一个参数,还是分别表示关键字后的不同参数?他们代表什么?:.:.classes

  2. 为什么我们需要提供之后?作为所有这些组合: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;

工作完全一样。它们生成完全相同的文件(每个 226 字节),当我在 Web 容器中部署它们时,它们的工作方式完全相同。.class

那么这些符号有什么意义呢?以上四个命令有何不同?任何人都可以清楚地解释这一点,请?javac ..


米琪卡哇伊
浏览 109回答 1
1回答

慕容708150

使用类路径值中使用的 分隔符是为了将多个文件夹分隔为类路径的值。;:;用于分隔 Windows 操作系统下的文件夹。:用于分隔 *nix 操作系统下的文件夹。结合该参数意味着编译的文件将放置在 classes 文件夹中,而不是基于包层次结构的标准放置。-d classesclasses:..class因此,将类作为类路径的附加参数包含在内,允许在编译新的 java 类时引用以前编译的类文件。是对从中执行命令的目录 (当前工作目录) 的类路径引用。.javac这里唯一的问题是两种分隔符类型的混合。为什么这样做-我不知道。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java