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://前缀即可。

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