我的Python心路历程 第十一期 (11.7 初探python调试总结之java环境变量Unable to locate an executable at “/Library/Java/JavaV)

背景

今日我的Python心路历程是 初探python调试总结之java环境变量Unable to locate an executable at “/Library/Java/JavaVirtualMachines/jdk15.0.2.jdk/Contents/Home/bin/jjs” (-1)

分析

运行execjs相关代码execjs.eval(‘xx’)时编译报错No Java runtime具体如下:

 ProcessExitedWithNonZeroStatus(status=status, stdout=stdoutdata, stderr=stderrdata)
execjs._exceptions.ProcessExitedWithNonZeroStatus: (1, '', 'No Java runtime present, requesting install.\n')

Process finished with exit code 1

并伴随JDK的提示,截图如下:
在这里插入图片描述

点击“更多信息”会引导安装flash,我尝试安装后依旧如故。
所以就根据提示获取JDK包,到官网https://www.oracle.com/java/technologies/javase-jdk15-downloads.html下载对应安装包,Mac电脑为:
在这里插入图片描述
安装完还提示这个错误,通过vim .bash_profile
添加:

export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
 
export PATH=${JAVA_HOME}/bin:$PATH

保存,并关闭
然后 source .bash_profile

查看java版本:java -version

版本是刚才安装的15.0.2。

继续编译,依然出错并指向代码如下:

rr = execjs.eval("'red yellow blue'.split(' ')")

根据报错提示,在terminal下查看jjs并无此文件。
ls /Library/Java/JavaVirtualMachines/jdk15.0.2.jdk/Contents/Home/bin/jjs

方案

google、度娘上居然没有跟这个问题完全匹配的话题。
于是乎,开始各种尝试,更改环境变量等诸多方式,连拷贝系统jjs文件到这个目录下的方法都用上了(执行死机)。
定位好久,以为是环境变量的问题,设置了很多环境变量都搞不定;后来觉得可能是jdk版本问题,于是下载旧版本(jdk1.8.0_261.jdk)并安装。
在terminal下查看jjs并此文件有了。
ls /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/jjs
看来是最新版本并非适用,但我当时着实看了跟我当前的os是兼容的,但有可能跟当前系统、python等环境不匹配导致的。

安装好jdk1.8.0_261.jdk,更改了环境变量如下:

# Setting based bin path
PATH=/usr/bin:$PATH:.
export PATH

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH
alias python="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9"

# Setting Java Runtime. jdk1.8.0_261.jdk;jdk-15.0.2.jdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH

依旧报错,并且报错依旧在jdk-15.0.2.jdk下,又更改环境变量,连pycharm的环境变量都改了很多遍,还是依旧报错如此。
干脆删除这个版本避免干扰,切记mac电脑上要用卸载命令:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
sudo rm -fr/Library/PreferencesPanes/JavaControlPanel.prefpane```

查询本机jdk版本:

ls /Library/Java/JavaVirtualMachines/ 

卸载对应版本(别卸载错哦)

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk

重新编译ok。尽管也报了些小错误,但执行结果终于出来了。
哦耶!先秀一下肌肉再说,其它错误慢慢来解决!

效果

在这里插入图片描述

参考:
1、我的Python心路历程 第十一期 (11.5 初探python调试总结之python环境变量)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值