如何从父目录执行Java程序

时间:2011-01-26 09:17:07

标签: java class compiler-construction classpath

我有一个像这样的目录结构:

./
 +-- myClass
 |   +-- MainClass.class
 |
 +-- dummy
     +-- DummyClass.class

MainClass包含public static void main(String args[])并导入dummy.DummyClass。

我使用像javac myClass/MainClass.java dummy/DummyClass.java之类的简单命令进行编译,一切都很好。但是当我尝试使用java myClass.MainClass从./执行它时,我得到了“找不到主类”的错误。

如果我使用-cp选项更改类路径,那么MainClass将无法再找到DummyClass。

任何提示?

非常感谢你;)

2 个答案:

答案 0 :(得分:1)

MainClass顶部是否有package myClass;

这对于类考虑包myClass的一部分是必要的,只有这样才能正确地解析为myClass.MainClass - 目录结构必须镜像pacakge结构。

答案 1 :(得分:0)

这应该适合你:

MainClass:

打包myClass;

import dummy.Dummy;

公共类MainClass {

的java     public static void main(String [] args){

    System.out.println(:"This is the main class");
    Dummy dummy = new Dummy();
    dummy.exec();
}

}

虚拟:

包假人;

public class Dummy {

public void exec(){

    System.out.println("This is the dummy class exec invocation");

}

}

在根文件夹中的命令行:

javac myClass / MainClass.java dummy / Dummy.java

  • 这将导致正在编译的课程

并且,这将执行并调用MainClass中的“main”: javac myClass / MainClass.java dummy / Dummy.java