Java 8运行Appium的uiautomatorviewer.bat报错求解决
解决Java 8下uiautomatorviewer.bat启动失败的问题
问题原因
Java 8开始废弃了-Djava.ext.dirs参数的用法,官方明确要求改用-classpath(或缩写-cp)指定类路径,原bat文件的启动命令使用了已被弃用的参数,导致JVM启动失败。
解决方案
直接修改uiautomatorviewer.bat文件的启动命令,替换弃用参数:
- 找到
uiautomatorviewer.bat所在路径(通常在Appium关联的Android SDK目录下的tools/bin文件夹内),右键选择编辑打开文件。 - 定位到
:SetPath代码段,将原启动命令中的"-Djava.ext.dirs=%javaextdirs%"替换为"-cp %javaextdirs%"。
修改后的代码段如下:
:SetPath set javaextdirs=%swt_path%;%frameworkdir% call "%java_exe%" "-cp %javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*
- 保存文件后,重新运行
uiautomatorviewer.bat即可正常启动。
为什么命令行指定-cp无效?
因为uiautomatorviewer.bat文件内的启动命令硬编码了-Djava.ext.dirs参数,命令行传入的-cp参数会被bat内的命令覆盖,必须修改bat文件本身的启动逻辑才能生效。
内容的提问来源于stack exchange,提问作者Aishwarya surve
相关产品推荐
相关产品推荐

