【问题标题】:Java: javac command classpath error [duplicate]Java:javac命令类路径错误[重复]
【发布时间】:2017-11-15 17:33:54
【问题描述】:

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

我也尝试在路径中添加 ' " " '(引号),但没有成功。我有两个问题:

1) 这里有什么问题?

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

编辑:通过 oracle 站点link,我找到了“-cp 选项”的解释

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

如果未指定 -processorpath 选项,还会在类路径中搜索注解处理器。

【问题讨论】:

  • 类路径用于查找类,而不是源文件。传入源文件的名称相对于当前工作目录
  • 是的,直接附加源文件的路径有效!仅供参考,为什么选项“-sourcepath”不能代替“-cp”工作,保持其他一切不变?这次我是给源路径吧?
  • 我也在这里找到了这个 link -cp path or -classpath path: 。 . . . 如果没有指定-sourcepath选项,也会在用户类路径中搜索源文件。
  • 这些是搜索源文件由您正在编译的文件引用, 或此类文件。也不是您正在编译的源文件。错误消息证明了这一点。见your own link

标签: java


【解决方案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

【讨论】:

  • 感谢您的详细解答。我该如何解决这个问题?另请在“编辑”下检查添加的部分。
  • @Sirius。 (1) 如答案中所述,要解决您的原始问题,请不要使用-cp 选项,并确保Fruit.java 的绝对或相对路径是正确的。 (2) 我检查了编辑的部分。您的问题是什么?
  • 它说如果'-sourcepath'没有定义,用户提供的类路径也会被搜索源文件。如果这是真的,那么它应该通过我给出的“-cp”路径找到“Fruit.java”源文件,不是吗。也感谢您的帮助,我将您的答案标记为已接受的解决方案:-)
  • @Sirius,没有。这里的源文件是指 .class 文件,其中包含您的自定义 java 类和注释的源代码。它不会查看 .java 文件。
猜你喜欢
  • 2017-05-22
  • 1970-01-01
  • 2011-07-05
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2013-08-04
  • 1970-01-01
相关资源
最近更新 更多