Pop!_OS终端每次启动提示找不到JS脚本引擎,如何解决?
解决Pop!_OS终端启动时“script engine for language js can not be found”错误
定位错误触发源
先找到导致错误的脚本位置:
- 检查个人bash配置文件,比如
~/.bashrc、~/.bash_profile,以及系统级配置/etc/bash.bashrc,查找是否存在调用Java执行JS代码的片段(比如jrunscript命令或直接通过Java运行JS的语句)。 - 用终端调试命令定位具体触发行:
执行后会逐行输出终端启动时执行的命令,找到抛出错误的对应代码。bash -x
针对Nashorn引擎移除的解决方案
OpenJDK 15及以上版本已移除Nashorn JS引擎,根据你的需求选择以下处理方式:
方式1:移除或修改依赖JS引擎的脚本
如果该脚本不是必需功能,直接删除对应代码行;若需要保留功能,可替换为Node.js等其他JS执行环境实现。
方式2:手动安装Nashorn引擎(适用于OpenJDK 15+)
对于OpenJDK 15-17版本,可通过独立包恢复Nashorn:
- 获取Nashorn核心JAR包(如
org.openjdk.nashorn:nashorn-core:15.4) - 将JAR包放入Java扩展目录,示例命令(替换为你的Java实际路径):
sudo cp nashorn-core-15.4.jar /usr/lib/jvm/java-19-openjdk-amd64/lib/ext/
方式3:切换到兼容的Java版本
若上述方法无效,可切换到自带Nashorn的OpenJDK 11(长期支持版):
- 安装OpenJDK 11:
sudo apt install openjdk-11-jdk - 设置默认Java版本:
在弹出的选项中选择OpenJDK 11。sudo update-alternatives --config java
验证修复
修改完成后,重启终端或执行source ~/.bashrc,检查错误是否消失。
内容的提问来源于stack exchange,提问作者anupam singh
相关产品推荐
相关产品推荐

