2016-05-16 70 views
0

我有新的笔记本电脑,我已经安装了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从命令提示符使用javac编译java程序

然后尝试编译我的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 

我不知道我是否正确使用“源路径”或不...

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

回答

3

使用此,而不是...

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

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

-sourcepath Specify where to find input source files

之后的参数指定要编译的实际Java文件。你会需要“围绕参数,因为你的路径中有空格,避免在你的路径中的空间,以尽可能避免这个问题

+1

感谢吨Mano ....我现在有类文件:) – BlueStar

+0

嗨Mano,当我使用java执行类文件.exe ...它再次给我一个错误...可以请你协助....再一次:)... C:\ Program Files \ Java \ jdk1.8.0_91 \ bin> java C:\ myData \ HelloWorld 错误:无法找到或加载主类C:\ myData \ HelloWorld – BlueStar

+0

您不这样称呼它。您可以通过其完全合格的类名来调用它,例如'java com。example.HelloWorld'。你必须用你自己的代替我的例子类名。请记住,您可能需要将java指向类文件的位置,例如'java -cp directory/where/classfiles/exist com.example.HelloWorld' – ManoDestra

1

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

javac -sourcepath "C:\my Data" 
+0

嗨AR,我试过引号,但仍然给.. javac:没有源文件 用法:javac <源文件> 使用-help查看可能的选项列表 – BlueStar

1

-sourcepath是一个路径,你给这不是一个java文件的文件名,这是无效的。从文档:

-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,因为对方的回答指出,这需要行情]

0

路径C:\ my Data \ HelloWorld.java在其中有空格,因此出现错误。

请括在“”(双引号)路径

+1

感谢Anand抽出时间和回复..但它是我使用的错误语法...这工作得很好... javac - sourcepath“C:\ my data”“C:\ my Data \ HelloWorld.java” – BlueStar