从命令提示符使用 javac 编译 java 程序

Compiling java program using javac from command prompt

我有一台新笔记本电脑,上面安装了 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

我不确定我是否正确使用了"sourcepath"...

我应该如何告诉编译器我的源文件在哪里?(我想在不设置任何类路径或任何环境变量的情况下解决这个问题)

您需要将源路径放在引号中,以便命令行将其作为单个参数处理。源路径也必须是你的目录,而不是文件:

javac -sourcepath "C:\my Data"

-sourcepath 是路径,您提供的文件名不是 java 文件,这是无效的。来自文档:

-源路径源路径

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,正如另一个答案所指出的,它需要引号。]

路径 C:\my Data\HelloWorld.java 中有 space 因此错误。

请将路径用“”(双引号)括起来

改用这个...

javac -sourcepath "C:\my Data" "C:\my Data\HelloWorld.java"

sourcepath 参数允许您指定源文件所在的目录。根据 javac 命令行输出:

-sourcepath Specify where to find input source files

之后的参数指定要编译的实际 Java 文件。如果您的路径中有空格,您将需要在参数周围使用 "。尽可能避免在路径中使用空格以避免此问题。