selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Cannot verify the signature of 'C:\Users\Administrator\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-v4.21.1.apk'. Original error: The JAVA_HOME location 'C:\Program Files\Java\jdk-16.0.1' must exist
JDK 配置错了,重新配置下 JDK,网上很多教程的
The JAVA_HOME location 'C:\Program Files\Java\jdk-16.0.1' must exist
我现在安装的这个版本 jdk8,以前安装的 jdk16.
有没有大佬知道这个为啥报这个错呀,我明明电脑上装的 jdk 版本是 8,环境配置没问题,而且 cmd 运行也没问题的
一连 appium 就报找不到 jdk16。。。 这是为啥 重装了好几遍 jdk 也没用
我之前用 JDK8 会报错,换到 JDK11 - lts 版本就好了。你可以尝试把 JDK 卸载重装 JDK11 并且重新配置环境变量试下,建议重启电脑 -- 虽然理论上不会存在问题,但重启电脑是个不错的选择
我只能等重装系统了么
看下你环境变量里,JAVA_HOME 配置的到底是啥?appium 都是问系统拿的值,这个值不是凭空出来的,一定是某个地方配置出来的。
另外,也说明下,经过命令行敲 java
和 javac
命令可以直接调用对应程序,是通过 PATH 这个环境变量来实现的。这个和 JAVA_HOME 这个环境变量是完全独立的,没有强依赖关系。java -version
调用到的 java ,不一定是 JAVA_HOME 配置的 java
。举个 linux 里面写法的例子(忘记 windows 下环境变量的表示方式了):
export JAVA_HOME=/user/jdk16
export PATH=$PATH:/user/jdk1.8
这样配置下,你用命令行调用 java
命令,用的是 1.8 的(PATH 里面配置的值),所以 java -version
也是 1.8 的。但 JAVA_HOME 却是 16 的。虽然很多教程都会教配置时 PATH 里面不要配置绝对路径,应该配置 PATH=$PATH:$JAVA_HOME
来引用 JAVA_HOME ,但如果是程序自己配置或者其他人配置的,这个就没法保障了。以前用 jdk8 的官方安装程序,貌似只会自动配置 PATH ,但不会配置 JAVA_HOME 的。其他版本的 jdk 没怎么用过,不清楚。
shell 下面通过 env
命令就可以列出所有环境变量的名称和值了,我排除环境变量的值是否有错误,经常用这个(shell 在不同运行模式下加载环境变量的顺序和位置都会有差异,命令行能正常调用的命令,jenkins 的 shell 下就是提示找不到,这个非常常见,需要用这个 env
命令列出所有环境变量的值供排查)。windows 不知道有没有类似的命令,其他人知道的话也可以分享下。
已经找到问题了,就是 appium 启动的那个环境 配置的没有改,所以一直是用的老路径,就会报错找不到 jdk16.感谢大佬的提醒
echo %JAVA_HOME% 看看打印什么