2012-09-30 49 views
0

我正在研究一個項目,其中有大量需要編譯爲jar的類。我知道入口點和manifest.txt以及我的jar中所有需要的項目,我的類都是編譯過的,並且有.class文件和所有東西,但問題是我必須將所有類文件添加到最終通過命令提示符中的一行編譯jar。我想知道並偶然發現互聯網上沒有任何東西,因爲我可以不斷更新我的工作,並且必須重新編譯和重新刻畫我的工作。我聽說第三方程序可以做到這一點,但某些網站上的某些人說他們可能會導致問題和原因,所以我很快就放棄了這個想法。儘管我現在處於一個非常緊張的位置,但我希望聽到這方面的意見和建議。所以總結起來:使多級容器變得更容易

  • 我想辦法編譯一大束的.class文件在一個jar沒有彙編讓我節省時間和挫折之間打字他們都一遍又一遍。

  • 如果這甚至可以做 - 例如, JDK的jar編譯器,而不是任何第三方。如果有一種方法可以在編譯時參數中使用manifest或任何其他文件來做到這一點,那麼讓我聽聽它。

  • 任何關心建議,討論或給我一個很好的理由爲什麼要或不使用第三方應用程序將是最受歡迎的。
  • 請記住,我在Windows上工作,但我的應用程序將跨平臺,所以不建議作爲主要選項一些編譯解決方案,將使擴展名爲.exe的最終文件(雖然如果有人知道如何這樣做,我想在評論中聽到它,因爲我也想知道這一點)。

在此先感謝您,如果您覺得有必要問我任何問題以幫助您回覆,請拍攝!

+0

寫一個簡單的Ant腳本編譯和不和諧。不難。 –

+0

@ThorbjørnRavn Andersen你願意與我分享一個簡單的模板或鏈接嗎?我很欣賞這個建議,雖然我以前沒有做過類似的事情! :) –

+1

大約有10,000,000個使用ant和maven的教程。在ant.apache.org你會發現一個很好的螞蟻。 – bmargulies

回答

3

看看這個ant教程,它展示瞭如何編寫一個簡單的build.xml,它可以編譯和jar。

http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html

然後,您可以使其適應自己的需要。

注意:ant只適用於像你這樣的小型項目。

+0

非常感謝,但我似乎使用了http://stackoverflow.com/a/6849255/1650200中的一段代碼,並且有些代碼有關於ant的警告,我是否會遇到任何問題? –

+1

你需要了解足夠的知道你在做什麼 - 你必須努力!因爲你描述的螞蟻會很好。 –

+0

在這個問題上描述的問題只適用於一些非常特殊的用途,如果您正在使用,我會非常驚訝。 –

2

解決此問題及相關問題的方法是停止在命令行鍵入並使用構建工具。這裏的Java構建常用的工具有:

還有其他一些不太常見的。這兩種工具都會爲你提供你所需要的。

0

只是想添加一些關於Ant和Maven的信息。

就你而言,你需要自動化應用程序的構建。基本的解決方案是某種腳本,但根本不用。有更好的解決方案:

如果你是從一個腳本的想法來自動化你的構建,你可以使用像Ant這樣的工具,它有點像在C世界中的make和這樣的工具,你可以爲你定義所需的任務建立一個配置文件。這種解決方案的問題在於,它允許您爲自己的構建定義自己的結構,而對於項目來說,新角色可能會在理解構建邏輯時遇到一些困難。

另一種方法是描述你想要做什麼樣的構建,組織你的源和資源,就像在大多數情況下完成的那樣(事實上遵循一個約定)。例如,java源代碼位於src/main/java中,測試代碼位於src/test/java中,配置文件位於src/main/resources中,依此類推。在你的構建的描述中,你只會說:這是一個java項目,我想構建一個war web應用程序並使用jUnit 4執行我的測試。我的項目的依賴關係是apache xerces和hibernate 4.然後,該工具將知道該做什麼,而無需說明該怎麼做。這是maven的方式。

簡而言之,在Ant中,你會說如何做到你想要的,並且在Maven方法中,你將定義你想要做的事情,並且該工具將默認如何知道。

您可能也會對某種混合方式感興趣,比如Gradle等工具提供的混合方式。

欲瞭解更多信息:

希望它可以幫助