java - 我在为 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
让我知道是否有人有任何其他想法!
解决方案
看来你在这里有点困惑。CLASSPATH 用于告诉 java 和 javac 程序在哪里可以找到已编译的 .class 和 .jar 文件。
您正在尝试使用 CLASSPATH 让 javac 定位 SOURCE 文件,但这不起作用。
见这里: https ://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
您可能希望检查 -sourcepath 参数。
推荐阅读
- url - 如何动态重写/重定向 url
- javascript - 我的脚本仅在脚本中有警报功能时才有效
- python - 如何有效地增加数据帧
- javascript - 如果设备旋转,如何不更改屏幕方向(仅限浏览器)
- angular - 在Angular中删除对象的空白部分
- javascript - 如何将对象列表传递给控制器?
- c - 如何正确安全地释放()所有内存使用C中的嵌套结构?
- android - 为什么我在运行我的项目时会收到这个 google guava 错误?
- css - 如何在 vuetify 中删除容器边距?
- mysql - Alter table default character set 修改 MySQL 5.6 中的行