2013-07-05 30 views
0

我們在某些用戶PC上啓動SWT應用程序時遇到了問題。應用程序通過JNLP部署。 開始時定義swt-win32.dll和swt-win32-XXXX.dll的導出路徑

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-win32-4234 in java.library.path 
no swt-win32 in java.library.path 
Can't load library: C\Users\userprofile\swt-win32-4234.dll 
Can't load library: C\Users\userprofile\swt-win32.dll 

發生。將這些文件複製到指定的文件夾中並沒有幫助。我們懷疑,由於存在較舊的用戶配置文件,可能發生了錯誤,但它甚至發生在沒有這些配置的PC上。

是否有任何方法可以手動指定這些庫將被提取的位置,從而確保找到它們?

謝謝。

+0

在dll上運行depend.exe並查看是否有任何缺失的依賴關係 – user93353

+0

這些特定用戶是否使用64位操作系統? Java運行時?其他用戶呢?你有一點點不匹配嗎? –

+0

那麼,在我們公司使用的都是32位和64位系統,但只有32位Java。大多數用戶沒有任何問題,但只有少數人有這個問題。 – Romczyk

回答

0

版本高達和包括3.2遭受這個問題。這可以通過在\ libswt \ win32中添加一個64位swt.jar來替換32位來解決。

更好的實現方法是在libswt中創建一個win64目錄,將swt.jar文件複製到這裏並修改.bat腳本。例如,在spoon.bat找到行:

組CLASSPATH =%CLASSPATH%; libswt \ WIN32 \ SWT.JAR

並將它更改爲

組CLASSPATH =%CLASSPATH%; libswt \ Win64平臺\ SWT.JAR

0

[引自 「皮特」 @http://www.eclipse.org/forums/index.php/t/229186/]

當初相同的初始問題,最後排序它...

右擊項目並轉到屬性

在Projects選項卡下的Java構建路徑有關聯的項目,在我的情況org.eclipse.swt.win32.win32.x86

展開這個下來的小箭頭左側顯示選項。在這裏我找到了本地庫位置。這沒有設置,所以我選擇它並單擊編輯。

在隨後的彈出窗口中,我選擇了Workspace,然後選擇了org.eclipse.swt.win32.win32.x86。

下一次我跑了班,它工作正常。

我希望這可以幫助別人!

+0

其實我沒有關聯項目下的任何東西。 swt.jar內置於產品罐中。 – Romczyk