2017-06-13 95 views
0

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

我曾尝试在路径中添加'“”'(引号),但徒劳无功。我在这里有两个问题:

1)这里有什么问题?

2)如何使用'。'放置路径。 (点)以cmd为'cp'选项? 请帮助

Issue

编辑:通过Oracle网站link去,我发现这个解释“-cp选项”

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

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

+6

类路径用于查找类,而不是源文件。传入相对于当前工作目录*的源文件*的名称。 –

+0

是的,直接附加到源文件的路径工作!仅供参考,为什么不选择'-sourcepath'而不是'-cp',保持其他部分一致?我这次给源代码路径正确? – Sirius

+0

此外我在这里找到[链接](http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html) -cp路径或-classpath路径: 。 。 。 。 **如果未指定-sourcepath选项,则还会搜索用户类路径中的源文件。** – Sirius

回答

1

1)这里有什么问题?

文件夹c:\user\sony中不存在文件Fruit.java。这就是为什么javac抱怨。我认为您希望javac能够从选项cp下指定的路径中找出到Fruit.java的路径。这个期望是不正确的。 Javac使用选项cpclasspath下指定的路径查找Fruit.java引用的任何自定义类或注释。如果Fruit.java未使用任何自定义类或注释,则不需要指定cp选项。如果确实如此,则需要确保文件夹c:\user\sony\desktop\java中的Fruit.java引用的文件类型为.class

2)如何使用'。'放置路径。 (点)以cmd为'cp'选项?请帮助

在Windows shell中,'。'代表当前的工作目录。你的使用和期望是正确的。只要做javac .\desktop\Java\Fruit.java

+0

谢谢您的详细解答。我如何解决这个问题呢? 也请在'编辑'下检查添加的部分。 – Sirius

+0

@Sirius。 (1)为了解决你原来的问题,如答案中所述,不要使用'-cp'选项,并确保'Fruit.java'的绝对路径或相对路径是正确的。 (2)我检查了编辑过的部分。你在这里有什么问题? – VHS

+0

它说如果没有定义'-sourcepath',用户提供的类路径也会搜索源文件。如果这是真的,那么它应该通过我给的'-cp'路径找到'Fruit.java'源文件,不应该。也感谢您的帮助,我将您的答案标记为可接受的解决方案:-) – Sirius