我有新的笔记本电脑,我已经安装了jdk1.8.0_91和jre1.8.0_91。 两者都在" C:\ Program Files \ Java"夹。 我没有设置任何类路径或任何环境变量。 我写了一个HelloWorld.java程序并将其保存在" C:\ my Data"夹。 然后我使用cmd转到命令提示符。 然后我将当前目录更改为" C:\ Program Files \ Java \ jdk1.8.0_91 \ bin" ..因为这里是javac.exe
然后尝试编译我的HelloWorld程序,并给出以下错误 -
C:\Program Files\Java\jdk1.8.0_91\bin>javac -sourcepath C:\my Data\HelloWorld.java
javac: invalid flag: Data\HelloWorld.com
Usage: javac <options> <source files>
use -help for a list of possible options
我不确定我是否正确使用&#34; sourcepath&#34;或不......
我应该如何告诉编译器我的源文件在哪里?(我希望在不设置任何类路径或任何环境变量的情况下解决此问题)
答案 0 :(得分:3)
请改用它......
javac -sourcepath "C:\my Data" "C:\my Data\HelloWorld.java"
sourcepath
参数允许您指定将找到源文件的DIRECTORY。根据javac命令行输出:
-sourcepath指定查找输入源文件的位置
之后的参数指定要编译的实际Java文件。你需要“围绕参数,假设你的路径中有空格。避免路径中的空格尽可能避免这个问题。
答案 1 :(得分:1)
您需要将源路径放在引号中,以便命令行将其作为单个参数进行处理。源路径也必须是您的案例中的目录,而不是文件:
javac -sourcepath "C:\my Data"
答案 2 :(得分:1)
-sourcepath是一个PATH,你给的文件名不是java文件,这是无效的。来自文档:
-sourcepath sourcepath
Specify the source code path to search for class or interface
definitions. As with the user class path, source path entries are
separated by colons (:) and can be directories, JAR archives, or ZIP
archives. If packages are used, the local path name within the
directory or archive must reflect the package name.
[编辑:OP在问题中将文件名更改为.java,正如另一个答案所说,它需要引号。]
答案 3 :(得分:0)
路径C:\ my Data \ HelloWorld.java中有空格,因此出错。
请在“”(双引号)中附上路径