java SWT程序在macos平臺運行的若干問題總結

前言

由於SWT提供的程序包並不是跨平臺的,實際部署、運行時可以根據相應平臺下載其對應程序依賴,在https://mvnrepository.com/search?q=org.eclipse.swt 如下圖所示:
在這裏插入圖片描述
開發部署可以根據你的電腦進行下載不同的依賴,博主使用的macos系統,下面就總結經常可以遇到的SWT相關問題。

Could not load SWT library 的異常

當在macos平臺運行SWT程序的時候,程序會拋出這個異常如下所示:
在這裏插入圖片描述
代碼在window平臺並沒有這個問題,而到了macos平臺就會拋出上述的問題。最開始以爲是沒有在macos加載到上述兩個程序依賴。如下圖所示:
在這裏插入圖片描述
這個實際是Windows平臺中SWT應用程序需要本地化的DLL庫的支持才能運行,它們分別是swt-awt-win32-3236.dll和swt-win32-3236.dll,但是在macos平臺並不能運行上述兩個dll文件,所以我們需要選擇macos對應的依賴,將項目中的window依賴更改爲macos系統的依賴即可:
原來的window平臺的依賴

		<dependency>
			<groupId>org.eclipse.swt</groupId>
			<artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
			<version>4.3</version>
		</dependency>

更改後的macos平臺的依賴

		<dependency>
			<groupId>org.eclipse.swt</groupId>
			<artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId>
			<version>4.3</version>
		</dependency>

更改完成後再次運行程序,發現用戶目錄下的/.swt/lib/macosx/x86_64/)多了兩個文件如下圖所示:
在這裏插入圖片描述

SWTException: Invalid thread access異常

再次運行程序後發現報了這個錯誤如下圖所示:
在這裏插入圖片描述
解決方法是在主程序加一下VM的啓動參數:-XstartOnFirstThread在這裏插入圖片描述
啓動後可以發現SWT組件已經啓動成功如下圖所示:
在這裏插入圖片描述

The driver executable does not exist

輸入網址進行訪問頁面報了以下的錯誤。
在這裏插入圖片描述
程序保存如下圖所示:
在這裏插入圖片描述
可以看出程序是由於缺乏chrome的驅動造成的,驅動下載地址https://npm.taobao.org
在這裏插入圖片描述
需要注意的是請下載你電腦chrome瀏覽器對應的版本驅動,可以在瀏覽器查看chrome的版本如下圖所示:在這裏插入圖片描述
下載相應的鏈接驅動然後將其添加項目路徑下即可。
在這裏插入圖片描述
再次運行程序並不報錯。

WebDriverException: invalid argument

selenium訪問url填寫如下圖所示:
在這裏插入圖片描述
報錯如下圖所示:
在這裏插入圖片描述
解決方法是:訪問地址的時候填入http://前綴即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章