【问题标题】:I'm having trouble setting the classpath for javac我在为 javac 设置类路径时遇到问题
【发布时间】:2019-07-25 19:38:36
【问题描述】:

我正在尝试从命令行运行 java 和 javac,但在为 javac sdk 工具设置 CLASSPATH 时遇到问题。

我已经通过windows环境变量设置成功添加了CLASSPATH变量,这适用于java命令。我能够从命令行中的任何目录执行类文件。但是,当尝试使用 javac 命令时(其中 .java 文件位于同一个 CLASSPATH 目录中),我收到了找不到文件的错误消息。

我的 CLASSPATH 变量设置为:

C:\Users\ejovo\OneDrive\Documents\Coding\Java>

这里有 3 个例子来说明我的意思。

C:\>javac MyFirstApp.java
javac: file not found: MyFirstApp.java
Usage: javac <options> <source files>
use -help for a list of possible options

C:\Users\ejovo\OneDrive\Documents\Coding\Java>javac MyFirstApp.java

C:\>java MyFirstApp
Hello World

我们看到 java 命令可以从任何地方运行,而 javac 仍然必须从 .java 文件所在的目录运行。

我尝试使用 -cp 和 -classpath 选项设置 javac CLASSPATH,但没有任何运气:

C:\>javac -cp C:\Users\ejovo\OneDrive\Documents\Coding\Java
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options

C:\>javac -classpath C:\Users\ejovo\OneDrive\Documents\Coding\Java
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options

而且我已经设置了一个 PATH 变量,可以让 java 和 javac 命令正确运行

我也尝试使用 -sourcepath 参数更改源路径:

C:\>javac -sourcepath C:\Users\ejovo\OneDrive\Documents\Coding\Java
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options

尽管如此,我显然确实有一个 .java 源文件:

 Directory of C:\Users\ejovo\OneDrive\Documents\Coding\Java

07/25/2019  03:08 PM    <DIR>          .
07/25/2019  03:08 PM    <DIR>          ..
07/25/2019  03:29 PM               425 MyFirstApp.class
07/24/2019  06:40 PM               127 MyFirstApp.java
               2 File(s)            552 bytes
               2 Dir(s)  57,735,630,848 bytes free

如果有人有任何其他想法,请告诉我!

【问题讨论】:

标签: java cmd


【解决方案1】:

看来您在这里有点困惑。 CLASSPATH 用于告诉 java 和 javac 程序在哪里可以找到已编译的 .class 和 .jar 文件。

您正试图使用​​ CLASSPATH 让 javac 定位 SOURCE 文件,但这不起作用。

请看这里: https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html

您可能希望检查 -sourcepath 参数。

【讨论】:

  • 这完全有道理,但是我读过 java 编译器通过类路径搜索 src 文件和类文件。尽管如此,我已经尝试使用 -sourcepath 设置源路径,但没有成功。我将编辑原始帖子以向您展示我的意思
  • 在你的最后一个例子中,你设置了源路径,但是你没有指定任何要编译的文件!
猜你喜欢
  • 2014-02-10
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
相关资源
最近更新 更多