[英]Java: How to compile a runnable jar from packages?
我的Java應用程序具有類似於以下的包結構:
src/com/name/app
src/com/name/app/do
src/com/name/utils/db
如何將這些目錄中的Java文件編譯到可運行的jar中? 我需要將所需的庫打包到生成的JAR(jdbc)中。
我一直在Eclipse中完成這些操作,但是現在我需要為幾個人提供一種無需使用eclipse即可編譯存儲庫的方法,並且我正在考慮制作一個makefile或調用必要的javac模式的腳本。
看一下螞蟻。 這是一個相對簡單的構建工具,易於理解,並提供滿足您要求的所有內容。 這是一個快速入門build.xml,可以幫助您入門:
<project name="my_app_name" default="jar">
<target name="compile">
<javac srcdir="src" destdir="bin">
<classpath>
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
</target>
<target name="jar">
<jar manifest="manifest_file" destfile="dist/my_app_name.jar">
<fileset dir="bin" />
<fileset dir="lib" />
</jar>
</target>
您需要創建一個清單文件,該文件將告訴java進程哪個類包含“ main”方法。 這是開始學習清單的好地方。
作為產生真正混亂的Ant構建文件的替代方法,您可以右鍵單擊Eclipse項目並選擇“導出...”,然后選擇“常規> Ant構建文件”。
無論如何,那應該讓您入門。 您可以在遇到問題時提出更具體的問題。
首先,考慮將Ant用於此類任務。
但是,由於您要求手動進行操作,因此需要首先創建一個清單文件 ,如下所示:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Class-Path: lib/jdbc.jar lib/otherlib.jar
Main-Class: com.name.app.MainClass
用您的庫替換Class-Path的內容,並用您的主類的完全限定名替換Main-Class 。
然后,您需要使用以下命令生成實際的.jar:
jar cfm app.jar MANIFEST.MF src/com/name/app/*.class src/com/name/app/do/*.class
其中MANIFEST.MF是前面提到的清單文件,其余的是您的.java類所在的文件夾。
最后,要運行您的應用程序,只需執行以下命令: java -jar app.jar
。
考慮使用Ant來執行此操作。 http://ant.apache.org/
我建議您使用Apache Ant來實現構建腳本。
如果正確實現,則Ant易於使用,並且構建腳本可以在可以安裝JDK的任何平台上運行。 確實,只需做一些工作,您甚至可以設置您的項目,以便用戶甚至不需要下載/安裝Ant。 (提示:將Ant JAR文件和包裝腳本添加到項目發行版中)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.