我正在練習Oracle Java SE 8考試準備練習1.2,它指導我構建一個主類GreetingsUniverse
和三個將由主類初始化的類; Mars
,Earth
和Venus
。編譯java代碼找不到源文件
我有存儲在位置的com
目錄:C:\Users\Chris\Documents\JavaMM
package com.ocajexam.tutorial;
import com.ocajexam.tutorial.planets.Earth;
import com.ocajexam.tutorial.planets.Venus;
import com.ocajexam.tutorial.planets.Mars;
public class GreetingsUniverse
{
public static void main (String[] args)
{
System.out.println("Greetings, Universe!");
Earth e = new Earth();
Mars m = new Mars();
Venus v = new Venus();
}
}
package com.ocajexam.tutorial.planets;
public class Mars
{
public Mars()
{
System.out.println("Hello from Mars!");
}
}
package com.ocajexam.tutorial.planets;
public class Earth
{
public Earth()
{
System.out.println("Hello from Earth!");
}
}
package com.ocajexam.tutorial.planets;
public class Venus
{
public Venus()
{
System.out.println("Hello from Venus!");
}
}
練習的目的是確定編譯代碼所需的命令行參數。
我存儲在com\ocajexam\tutorial\
的GreetingsUniverse
Java文件和行星店com\ocajexam\tutorial\planets
我曾嘗試沒有成功的各種解決方案:
javac -d . -cp com\ocajexam\tutorial\planets com\ocajexam\tutorial\GreetingsUniverse.java
javac -d . -cp com com\ocajexam\tutorial\GreetingsUniverse.java
我不斷收到以下錯誤:
C:\Users\Chris\Documents\JavaMM>javac -d . -cp com com\ocajexam\tutorial\GreetingsUniverse.java
com\ocajexam\tutorial\GreetingsUniverse.java:8: error: cannot find symbol
Earth e = new Earth();
^
symbol: class Earth
location: class GreetingsUniverse
com\ocajexam\tutorial\GreetingsUniverse.java:8: error: cannot find symbol
Earth e = new Earth();
^
symbol: class Earth
location: class GreetingsUniverse
com\ocajexam\tutorial\GreetingsUniverse.java:9: error: cannot find symbol
Mars m = new Mars();
^
symbol: class Mars
location: class GreetingsUniverse
com\ocajexam\tutorial\GreetingsUniverse.java:9: error: cannot find symbol
Mars m = new Mars();
^
symbol: class Mars
location: class GreetingsUniverse
com\ocajexam\tutorial\GreetingsUniverse.java:10: error: cannot find symbol
Venus v = new Venus();
^
symbol: class Venus
location: class GreetingsUniverse
com\ocajexam\tutorial\GreetingsUniverse.java:10: error: cannot find symbol
Venus v = new Venus();
^
symbol: class Venus
location: class GreetingsUniverse
6 errors
有沒有人知道我在哪裏出錯了?
我也試圖產生一個不同的錯誤信息如下:
C:\Users\Chris\Documents\JavaMM>javac -d . com\ocajexam\tutorial\planets\Earth.java;com\ocajexam\tutorial\planets\Mars.java;com\ocajexam\tutorial\planets\Venus.java com\ocajexam\tutorial\GreetingsUniverse.java
產生以下錯誤:
javac: file not found: com\ocajexam\tutorial\planets\Earth.java;com\ocajexam\tutorial\planets\Mars.java;com\ocajexam\tutorial\planets\Venus.java
Usage: javac <options> <source files>
use -help for a list of possible options
的文件是肯定有的,如果我在planets
目錄dir我可以看到它們:
Directory of C:\Users\Chris\Documents\JavaMM\com\ocajexam\tutorial\planets
16/10/2016 11:33 <DIR> .
16/10/2016 11:33 <DIR> ..
15/10/2016 21:48 135 Earth.java
15/10/2016 21:48 132 Mars.java
15/10/2016 21:48 135 Venus.java
更新: 經過進一步調試這是剛開陌生人..
我想只能使用命令上半年編譯星球文件:
javac -d . -cp com\ocajexam\tutorial\planets\*.java
當我檢查這個星球目錄,只有兩個行星已編譯。當我刪除不編譯的java類時,只有一個文件被編譯!
當我使用同樣的命令指定的java文件,我想編譯:
javac -d . -cp com\ocajexam\tutorial\planets\Venus.java
我得到以下錯誤:
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options
我不能做這個,因爲Venus.java
任何意義是當我運行/*.java
編譯命令來檢測目錄中的任何java文件時編譯的文件之一
你的classpath是'.',而不是'com'。 – tkausl
我也試過,並得到相同的錯誤 – algorhythm
'Venus.java',例如需要它自己的文件。您的問題的格式不會很清楚 –