我正在练习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',例如需要它自己的文件。您的问题的格式不会很清楚 –