2011-01-26 99 views
0

執行Java程序有一個目錄結構是這樣的:我如何從父目錄

./ 
+-- 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。

任何提示?

非常感謝你;)

回答

1

是否MainClass頂部有這樣:package myClass;

這是類需要考慮包myClass的一部分,然後才能正確解決爲myClass.MainClass - 目錄結構必須鏡像pacakge結構。

+0

好,我很愚蠢:d忘了把它寫在MainClass。謝謝你,兄弟 ;) – 3mpty 2011-01-26 09:26:59

0

這應該爲你工作:

MainClass:

包MyClass的;

import dummy.Dummy;

公共類MainClass {

的java 公共靜態無效的主要(字串[] args){

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

}

假人:

包虛設;

公共類假人{

public void exec(){ 

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

} 

}

在根文件夾的命令行:

的javac myClass的/ MainClass.java虛設/ Dummy.java

  • 這將導致正在編譯的課程

而且,這將執行並調用「主」在MainClass: javac的MyClass的/ MainClass.java虛擬/ Dummy.java