我正在尝试从命令行运行java和javac,但是我无法为javac sdk工具设置CLASSPATH。
我已经通过Windows环境变量设置成功添加了CLASSPATH变量,这对java命令有效。我可以从命令行中的任何目录执行类文件。但是,当尝试使用javac命令(.java文件位于同一CLASSPATH目录中)时,我收到未找到该文件的错误消息。
我的CLASSPATH变量设置为:
C:\Users\ejovo\OneDrive\Documents\Coding\Java>
这里是我的意思的三个例子。
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参数更改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
让我知道是否还有其他想法!
答案 0 :(得分:1)
看来您在这里有点困惑。 CLASSPATH用于告诉java和javac程序在哪里可以找到已编译的.class和.jar文件。
您正在尝试使用CLASSPATH使javac定位SOURCE文件,该文件不起作用。
请参阅此处: https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
您可能希望检查-sourcepath参数。