首页 > 解决方案 > 我在为 javac 设置类路径时遇到问题

问题描述

我正在尝试从命令行运行 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

让我知道是否有人有任何其他想法!

标签: javacmd

解决方案


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

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

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

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


推荐阅读