2012-05-28 95 views
2

我有一個我在Ubuntu上編寫的程序。我將該程序導出爲可運行的.Jar,並且在Linux系統上運行良好。如果我嘗試在Windows系統上使用它,我會得到一個與兩個SWT .Dll文件相關的UnsatisfiedLinkError。我一直試圖通過在命令行中鍵入打開它:從Eclipse導出的jar在Linux上工作,但不能在Windows上工作

java -jar <filename>.Jar` 

有沒有一種方法,我可以收拾這些.dll文件到可運行的.jar?我從來沒有遇到過這個錯誤,所以我真的不知道該怎麼做。很感謝任何形式的幫助。

+0

你有Windows上的日食嗎?只是爲了檢查我做的 – Satya

+0

。澄清eclipse的版本是64位,而Java的版本是64位。我試圖在許多不同的Windows計算機上打開它,這就是爲什麼我覺得它必須是.Jar打包的方式的問題 – user1366697

回答

2

我用SWTJar解決的問題。

SWT是一個Java小工具工具包,提供對原生UI元素的訪問。這在包裝應用程序時會出現問題,因爲您需要爲每個平臺(Windows/Linux/OSX)/(32/64位)包含不同的SWT jar。爲了支持所有這些標準平臺,您必須構建和分發6個不同的軟件包,這些軟件包並不真正符合Java一次編寫的精神,可以在任何地方運行。

它是如何工作的:

SWTJar是一個Ant任務,它允許你建立其在運行時加載正確的SWT類,允許您分發一個jar它可以跨一個jar(在Windows /的Linux/OSX)/(32/64位)。

以防萬一別人運行到這個問題! :)

+0

如果是你想要的,你可以接受你自己的答案;-) – Jeremy

0

我認爲你需要遵循these steps。根據它們的措辭,聽起來像可運行jar只用於單個目標平臺,儘管它可以是任何支持的平臺。

+1

您發佈的鏈接中沒有文本! – vickirk

+0

我想你指的是這個 「的Eclipse 3.3版本開始,文件‘SWT.JAR’文件包括執行你的SWT程序時,系統將自動解壓縮特定於平臺的可執行文件。這意味着,給定運行時文件夾將通常是特定於平臺的。「 在這種情況下,它聽起來像一個可運行的jar是特定於平臺的。 :( – user1366697

+0

解決了這個http://mchr3k.github.com/swtjar/ – user1366697

相關問題