2016-05-16 103 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