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

问题描述 投票:0回答:1

我正在读一本关于高级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;

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

那些符号的重点是什么?以上四个javac ..命令有何不同?有谁可以清楚解释这个,拜托?

java classpath javac
1个回答
0
投票

在类路径值中使用的;:delimiters用于将多个文件夹分隔为类路径的值。

;用于在Windows操作系统下分隔文件夹。

:用于在* nix OS下分隔文件夹。

-d classes结合使用的classes:.参数意味着已编译的.class文件将放在classes文件夹中,而不是基于包层次结构的标准放置。

因此,包含类作为类路径的附加参数允许在编译新的Java类时引用先前编译的类文件。 .是对已执行javac命令的目录的类路径引用 - 当前工作目录。

这里唯一的问题是混合两种分隔符类型。为什么这样做 - 我不知道。

参考文献:

© www.soinside.com 2019 - 2024. All rights reserved.