2008-11-04 67 views
4

在使用Gnome的Ubuntu Linux上,通過雙擊Gnomes文件瀏覽器中的jar文件來運行我的Swing應用程序會導致錯誤,因爲找不到通過Java插件框架動態加載的所需庫(駐留在子目錄中)。如何讓Java在Gnome的當前目錄中執行jar?

框架本身的基礎庫已正確解析,正如我的可執行jar的清單文件中所述。 但是,一旦框架啓動,找不到插件(甚至沒有指定我的平臺的插件)。

通過

 
java -jar myjar.jar 

的作品就像一個魅力啓動從終端應用,廣告不會通過雙擊一個shell腳本運行的應用程序。

但是,我想避免一個終端窗口。 (我是一個Windows用戶,也許它不會惹惱linux用戶,因爲它會影響Windows上的用戶。)

這個問題在多個Linux系統中是可重現的。 有什麼我需要做,所以Java解析正確的庫?

回答

0

Java在類路徑中依次加載jar,即jar1:jar2:jar3 ...大多數Java應用程序都附帶某種腳本,它通過指定類路徑和應用程序將使用的jar列表來設置所有這些腳本需要。

你想要做的可能不是非常明智的,因爲它意味着全局指定你想要加載每個Java應用程序的jar集合,並且你可能會與應用程序隨附的任何庫產生衝突。

這不是一個真正的問題,最簡單的解決方案可能是把一個小小的shell腳本放在一起。

2

我相信如果你添加一個META-INF/MANIFEST.MF文件,其中包含一個「Classpath:」屬性,其中包含一個值,指定你需要的罐子的相對路徑(我不確定它們是否是空格或逗號分隔),這可能會起作用。

+0

它們是空間分隔的。 – dhiller 2008-11-05 07:30:05

1

您可能要檢查:commons launcher。它會給你簡單的可執行文件,可以做各種啓動準備(包括設置類路徑等)。很可能這對你的問題是過度的,但你可以嘗試一下(因爲我討厭腳本,我會在你的情況下嘗試它)。

相關問題