2015-01-13 47 views
2

我試圖對現有程序進行擴展,並希望創建另一個類來幫助主程序。理想情況下,他們都會處於同一個包中,可以互相訪問。我檢查了很多其他的問題,並且對一些編譯方法的複雜性感到有些困惑(新的)。所以這裏是我的設置的一個例子:如何在同一個包中輕鬆運行java程序?

我有兩個類,一個主要方法都在同一個包,「cereal.crunchy」。

1級:重要
2級:垃圾

$ cd ~/Desktop/cereal/ 
$ javac crunchy/*.java 
$ java crunchy/Important 

我得到了錯誤

Could not find or load main class 

兩者都有包聲明:

package cereal.crunchy; 

一切都是公開的。

什麼讓我困惑的是,當我使用前面提到的方法編譯它們,然後做

$ cd ~/Desktop/ 
$ java cereal/crunchy/important 

程序運行,並可以訪問其他類。

我想我只是不明白,爲什麼我不能做:

$ cd ~/Desktop/cereal/ 
$ javac crunchy/*.java 
$ java crunchy/Important 

(請幫助我,我明白,這個問題確實是糙米,但是我看了看其他的問題,並沒有看到任何簡單的答案)。 (不適用於學校,我自己正在做的事情)。

回答

2

當你運行一個Java程序,您指定的包和類

包是不一樣的目錄。

  1. 雖然目錄,隔板爲/,用於包裝,隔板爲.

    換句話說,你必須做的:

    java crunchy.Important 
    

    代替

    java crunchy/Important 
    
  2. 由於Important包是cereal.crunchy,如果它在該目錄crunchy它不會工作。它必須位於目錄cereal/crunchy中。

    換句話說,cereal必須位於當前目錄中。

所以,你會做這樣的:

java cereal.crunchy.important 
+0

非常感謝!在之前的課程中,我們從未做過包聲明,只是使用cd來到文件的目錄,然後編譯並運行它。我認爲你必須始終留下一份包裝說明來描述文件路徑。謝謝! –

相關問題