2011-06-16 37 views
2

我明白在java中,你被強制爲每個類的單個文件。Java和編譯不使用IDE時

所以,如果我有類,如:

/my_project/main.java 
/my_project/classes/user.java 
/my_project/classes/other.java 

而且我main.java引用用戶和其他文件,我將如何通過命令行編譯呢?

如果我要的是我引用的外部.jar文件,並且將它們放在特定的文件夾中,那麼我怎樣才能在編譯時加入這個呢? (或者是有一個一般的地方,我可以把他們在那裏他們將拿起自動就像巨蟒如何做到這一點)

回答

2

編譯,你需要指定每一個源文件,從MY_PROJECT文件夾:

javac classes/user.java classes/other.java main.java 

您還可以指定jar文件與-cp選項你的類路徑:

javac -cp myjarfile.jar main.java 

您可能還需要與-cp標誌撥弄,以確保您的類文件夾是在類路徑中。

0

除了上面的答案之外,你可以使用類似Apache Ant的東西,以便更容易地配置你的構建(如果它變得複雜)。

2

首先,Java類以小寫字母開頭的風格很差。

只有公共類需要在它們自己的文件中,但是您可以根據自己的喜好添加儘可能多的包私有類到同一個文件中(雖然這被認爲是糟糕的樣式)。

這就是說,將編譯代碼的最簡單的方法是:

javac /my_project/main.java /my_project/classes/user.java /my_project/classes/other.java 

在任何情況下,適當的代碼佈局應該是類是將自己包的目錄結構。

編輯:有約定的一個相當不錯的解釋這裏http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter05/packagesImport.html

+0

謝謝,我希望有一個/my_project/classes/*.java類型的命令。 – Blankman 2011-06-16 17:34:03

+0

你可以這樣做,但* .class是由你的shell解決的。在unix環境中,這也應該起作用:'javac /my_project/*.java/my_project/classes/*。java'。 – juancn 2011-06-16 17:40:11