Macbook M1环境下代码启动Appium服务提示npm未找到
问题描述
我用以下Java代码配置Appium本地服务:
AppiumDriverLocalService service = new AppiumServiceBuilder() .withAppiumJS( new File("//usr//local//lib//node_modules//appium//build//lib//main.js")) .withIPAddress("127.0.0.1") .usingPort(4723) .build();
运行时抛出错误:
[Appium] 'npm' executable is not found neither in the process working folder (/Users/.../eclipse-workspace/Appium) nor in any folders specified in the PATH environment variable (/usr/bin:/bin:/usr/sbin:/sbin).
我已经安装了Node和NPM,版本验证正常,当前PATH配置如下:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-19.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH export ANDROID_HOME=/Users/<..>/Library/Android/sdk export MAVEN_HOME=/opt/homebrew/Cellar/maven/3.9.4/libexec export PATH=$PATH:/usr/local/bin:/usr/local/bin/npm export PATH=$MAVEN_HOME/bin:$PATH export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/emulator
解决方法
1. 修正PATH配置
你当前PATH里错误地单独添加了/usr/local/bin/npm路径,npm本身是/usr/local/bin目录下的可执行文件,无需单独配置。把这行:
export PATH=$PATH:/usr/local/bin:/usr/local/bin/npm
修改为:
export PATH=/usr/local/bin:$PATH
将/usr/local/bin放在PATH最前面,确保系统优先读取正确的node/npm路径。修改后执行source ~/.zshrc(或对应shell的配置文件)生效。
2. 让IDE加载最新环境变量
如果你用Eclipse运行代码,IDE可能没读取到终端更新后的PATH:
- 直接关闭并重启Eclipse,让它重新加载系统环境变量
- 或者手动在运行配置中添加PATH:右键项目→运行方式→运行配置→找到你的Java应用→切换到「环境」标签→新建变量
PATH,值为/usr/local/bin:加上原有PATH内容
3. 终端验证Appium环境
先在终端手动启动Appium服务,确认环境正常:
appium -a 127.0.0.1 -p 4723
如果终端能正常启动,说明问题出在IDE的环境变量读取上。
4. 强制指定Appium的环境变量
如果上面的方法都无效,可以在代码中直接给Appium指定包含npm的PATH:
AppiumDriverLocalService service = new AppiumServiceBuilder() .withAppiumJS(new File("/usr/local/lib/node_modules/appium/build/lib/main.js")) .withIPAddress("127.0.0.1") .usingPort(4723) .withEnvironment(Map.of("PATH", "/usr/local/bin:" + System.getenv("PATH"))) .build();
内容的提问来源于stack exchange,提问作者ABHISHEK MISHRA
相关产品推荐
相关产品推荐

