2010-06-04 147 views
4

基本上讓我先解釋一下我打算做的事情。我有一個用JAVA編寫的動態ETL變壓器應用程序。由於這個應用程序的動態性質,我必須能夠將插件jar添加到應用程序jar文件之外的應用程序中。 基本上想有以下目錄結構:包含清單的jar文件之外的jar文件問題

AppFolder
| - 插件/
| - CONFIGS/
| - mainApp.jar

如果可能的話,我想可以使用通配符在我的清單中動態添加位於插件文件夾中的jar。 不幸的是我到目前爲止所嘗試的都失敗了。我試圖使用相對路徑和絕對路徑都沒有工作(有或沒有通配符)。 如果我在主應用程序的jar文件中包含plugins文件夾,它可以正常工作,因爲我不使用通配符。

所以我的問題是,它實際上可能有一個jar之外的依賴關係,或者它們總是被包含在其中。 另一個問題是關於通配符的使用。我已經看過[java文檔](http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html),不幸的是沒有流行。

的是我迄今爲止嘗試了一些例子:

  • ../plugins/*
  • ../plugins/plugin.jar
  • /abolute /路徑/到/插件/ *
  • /abolute/path/to/plugins/plugin.jar

,不幸的是他們都沒有做的伎倆,因此任何幫助將是非常讚賞...

+0

你絕對需要通過雙擊啓動你的應用程序嗎?或者,如果您通過運行批處理腳本或shell腳本來啓動它,它可以嗎? – nojo 2010-06-04 17:34:57

回答

3

是的,你可以在罐子外面有依賴關係。但是不支持指定相關jar的通配符。

的罐子需要在您的清單中明確規定,地點必須是相對的,其中應用程序是從

運行,爲您更好的選擇可能是使用Extension Mechanism

java -Djava.ext.dirs=/abolute/path/to/plugins/ ......