3

我一直在使用 IDE,但现在,为了准备我的 1Z0-803 考试,我需要从命令行运行和编译。问题是我有多个包,我试图找到答案,但到目前为止没有任何效果。

所以我有 :

package com.oca.tutorial;

import com.oca.tutorial.planets.Earth;
import com.oca.tutorial.planets.Mars;
import com.oca.tutorial.planets.Venus;

public class GreetingUniverse {


    public static void main(String[] args) {

        System.out.println("greetings universe");

        new Earth();
        new Mars();
        new Venus();
        }
}

金星等级:

package com.oca.tutorial.planets;

public class Venus {

    public Venus() {

        System.out.println("Hello from Venus");

    }

}

火星级

 package com.oca.tutorial.planets;

    public class Mars {


        public Mars (){

            System.out.println("Hello from Mars");


        }

    }

还有我的地球课

 package com.oca.tutorial.planets;

    public class Earth {


        public Earth (){

            System.out.println("Hello from earth");


        }

    }

命令行 + 错误 在此处输入图像描述

预期输出:

greetings universe
Hello from earth
Hello from Mars
Hello from Venus

行星的场结构:

C:\OCA\com\oca\tutorial\planets

主要 GreetingUniverse 的字段结构:

C:\OCA\GreetingUniverse

来自命令提示符的错误消息:

在此处输入图像描述

4

3 回答 3

2

确保编译器可以找到所有文件。转到包含该com文件夹的目录并使用:

javac -d classes com\oca\tutorial\GreetingUniverse.java

或者干脆

javac -d classes com\oca\tutorial\*.java

用这个文件结构

com
 |-oca
    |-tutorial
       |  GreetingUniverse.java
       |-planets
          Earth.java
          Mars.Java
          Venus.java

C:\OCA进行编译时需要位于其中。

于 2013-05-30T17:01:09.660 回答
1

首先,您可以 cd 到 com/ 所在的基本目录。然后,

javac -d bin com\oca\tutorial\*.java com\oca\tutorial\planets\*.java

编辑: 正如上面的海报所说(并发现),您的文件结构是错误的。如果包中有类 GreetingUniverse com.oca.tutorial,则文件路径应为 com\oca\tutorial\GreetingUniverse.java。

于 2013-05-30T17:01:37.243 回答
1

请注意,您为每个类声明包。GreetingUniversecom.oca.tutorial包中, VenusMars, 和Earthcom.oca.tutorial.planets包中。Java 要求 .java 文件位于与其包名称相同的目录中。例如,GreetingUniverse.java需要位于名为com\oca\tutorial. 此子目录可以位于OCA您当前用于编译的目录中。

如果在将 .java 文件移动到正确的目录后仍然遇到类似的错误,请尝试在同一命令行中包含每个类的所有 .java 文件。很久没有从命令行编译大型项目了。据我记得这不应该是必要的,但它当然值得一试。

编辑:

为了澄清,这是你的目录结构应该如何设置:

C:
+-- OCA
+-- com
+-- oca
+-- 教程
-- GreetingUniverse.java
+-- 行星
-- Earth.java
-- Mars.java
-- Venus.java

现在运行以下命令:

C:\OCA> javac com/oca/tutorial/GreetingUniverse.java

于 2013-05-30T17:02:10.790 回答