Java:javac命令类路径错误

Java:javac命令类路径错误,java,Java,我对javac命令的“cp”选项有一些问题。 如附图所示,我输入了正确的路径,但仍然出现“未找到文件”错误 我也尝试过在路径中添加“'”(引号符号),但没有成功。我这里有两个问题: 1) 这里怎么了 2) 如何在cmd中为“cp”选项使用“.”(点)放置路径? 请帮忙 编辑:在浏览oracle站点时,我发现了对“-cp选项”的以下解释 -cp路径或类路径 指定在何处查找用户类文件,以及(可选)注释处理器和源文件。此类路径覆盖CLASSPATH环境变量中的用户类路径。如果未指定CLASSPATH

我对javac命令的“cp”选项有一些问题。 如附图所示,我输入了正确的路径,但仍然出现“未找到文件”错误

我也尝试过在路径中添加“'”(引号符号),但没有成功。我这里有两个问题:

1) 这里怎么了

2) 如何在cmd中为“cp”选项使用“.”(点)放置路径? 请帮忙

编辑:在浏览oracle站点时,我发现了对“-cp选项”的以下解释

-cp路径或类路径 指定在何处查找用户类文件,以及(可选)注释处理器和源文件。此类路径覆盖CLASSPATH环境变量中的用户类路径。如果未指定CLASSPATH,-cp或-CLASSPATH,则用户类路径由当前目录组成。有关详细信息,请参见设置类路径。 如果未指定-sourcepath选项,也会在用户类路径中搜索源文件。

如果未指定-processorpath选项,则还将在类路径中搜索注释处理器

1) 这里怎么了

文件夹
c:\user\sony
中不存在文件
Fruit.java
。这就是
javac
抱怨的原因。我想您希望
javac
从选项
cp
下指定的路径找出
Fruit.java
的路径。这种期望是不正确的。Javac使用选项
cp
classpath
下指定的路径来查找
Fruit.java
引用的任何自定义类或注释。如果
Fruit.java
不使用任何自定义类或注释,则无需指定
cp
选项。如果有,您需要确保在文件夹
c:\user\sony\desktop\java
中有Fruit.java引用的类的
.class
文件

2) 如何在cmd中为“cp”选项使用“.”(点)放置路径?请帮忙


在Windows shell中,“.”表示当前工作目录。您的用法和期望是正确的。只需执行
javac.\desktop\Java\Fruit.Java

类路径用于查找类,而不是源文件。传入相对于当前工作目录的源文件名。是的,直接将路径附加到源文件有效!仅供参考,为什么选项'-sourcepath'不能代替'-cp'工作,而其他一切都保持不变?这次我给出了源路径,对吗?我在这里也找到了-cp路径或-classpath路径:。如果未指定-sourcepath选项,则还将在用户类路径中搜索源文件。这些源文件将搜索由正在编译的文件或此类文件引用的源文件。也不适用于您正在编译的源文件。错误消息证明了这一点。谢谢你的详细回答。但是我该如何解决这个问题呢?另外,请检查“编辑”下添加的有问题的部分。@Sirius。(1) 如回答中所述,要解决原始问题,请不要使用
-cp
选项,并确保
水果.java
的绝对或相对路径正确。(2) 我检查了编辑的部分。你这里的问题是什么?它说如果没有定义'-sourcepath',用户提供的类路径也会被搜索到源文件。如果这是真的,那么它应该通过我给出的'-cp'路径找到'Fruit.java'源文件,不是吗。同样感谢您的帮助,我将您的答案标记为已接受的解决方案:-)@Sirius,no。这里的源文件表示包含自定义java类和注释源的
.class
文件。它不会查看
.java
文件。