2014-12-22 116 views
1

因此,我創建了一個Java項目,並且希望在JAR中包含一組庫。將庫中的庫動態添加到您的類路徑中

我的項目是建立像這樣:

庫/(瓶)
Main.java

我不知道如何將罐子到我Main.java文件,而無需添加類當我編譯它的路徑:

java -cp libs/*;. Main.java 

這是否無論如何動態地做到這一點?我的Main.java在一個jar中擴展了一個類,所以我無法加載Main類中的類。

回答

0

在編譯時設置jar文件類路徑;和Adding Classes to the JAR File's Classpath解釋(部分)

您指定類在applet或應用程序的清單文件中的Class-Path頭字段包含。該Class-Path頭採用以下形式:

Class-Path: jar1-name jar2-name directory-name/jar3-name 

所以(從鏈接的Oracle教程再次)創建一個文本文件爲您Manifest.txtClass-Path標題,然後

jar cfm MyJar.jar Manifest.txt MyPackage/*.class 
0

對我而言,我喜歡在windows中創建如下所示的批處理文件:

@echo off 
REM set any custom classpath 
SET classpath=.\;.\properties 

REM load all libraries in specific directory 
SET libpath=.\lib 
FOR %%i IN (%libpath%\*.jar) DO call set classpath=%%classpath%%;%%i 

java -cp %classpath% org.test.MyTest 

或者基於unix的操作系統中的bash腳本

#set any custom classpath 
classpath=./:./properties 

#load all libraries in specified directory 
for i in ./lib/*.jar 
do 
    classpath=$classpath:$i 
done 
export classpath 
java -cp $classpath org.test.MyTest 
相關問題