Linux:java通过Runtime.getRuntime().exec()执行shell,Process.waitFor()返回Required key not available(126)问题

发布时间 - 2025-06-19 00:00:00    点击率:

问题使用方法Runtime.getRuntime().exec()调用并执行脚本Process.waitFor()方法返回值是否为0来确定是否成功执行(成功为0)返回错误码126查看Process.waitFor()方法的返回值:Required key not available 操作系统错误代码126:所需的Key不可用排查

因为看到错误码对应的原因是:required key not available,所需的key不可用。查找了很多相关解决办法,发现都不太相关。

于是只能捕捉进程的输出来看是否能找到蛛丝马迹 增加代码如下:

代码语言:javascript代码运行次数:0运行复制
Process proc = Runtime.getRuntime().exec(strMakePathPath);  StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "Error");  StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "Output");  errorGobbler.start();  outputGobbler.start();  proc.waitFor(); 
代码语言:javascript代码运行次数:0运行复制
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class StreamGobbler extends Thread {    InputStream is;    String type;    public StreamGobbler(InputStream is, String type) {        this.is = is;        this.type = type;    }    public void run() {        try {            InputStreamReader isr = new InputStreamReader(is);            BufferedReader br = new BufferedReader(isr);            String line = null;            while ((line = br.readLine()) != null) {                if (type.equals("Error")) {                    System.out.println("Error   :" + line);                } else {                    System.out.println("Debug:" + line);                }            }        } catch (IOException ioe) {            ioe.printStackTrace();        }    }}

校验输出如下error(当时忘记截图了,看红色字)

于是去看了一下两个脚本的权限,结果果然有区别,第二个脚本没有可执行权限 所以问题是否在这里呢?

解决

直接权限安排

代码语言:javascript代码运行次数:0运行复制
chmod 777  文件

再次执行代码,发现问题解决了

结论

java通过Runtime.getRuntime().exec()执行shell,Process.waitFor()返回Required key not available(126)问题的解决办法:可以看一下文件权限是否有问题


# linux  # 操作系统  # ai  # 区别  # red  # Java  # JavaScript  # Error  # 所需  # 解决办法  # 不可用  # 返回值  # 在这里  # 看了  # 不太  # 错误码  # 第二个  # 蛛丝马迹 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  nginx修改上传文件大小限制的方法  浅谈javascript alert和confirm的美化  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Swift开发中switch语句值绑定模式  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何为API编写文档_Laravel API文档生成与维护方法  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  如何确保西部建站助手FTP传输的安全性?  高端建站三要素:定制模板、企业官网与响应式设计优化  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  如何快速搭建FTP站点实现文件共享?  如何在腾讯云免费申请建站?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Python正则表达式进阶教程_复杂匹配与分组替换解析  JavaScript Ajax实现异步通信  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  如何用AWS免费套餐快速搭建高效网站?  网页设计与网站制作内容,怎样注册网站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  canvas 画布在主流浏览器中的尺寸限制详细介绍  Android自定义控件实现温度旋转按钮效果  如何快速查询域名建站关键信息?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  EditPlus中的正则表达式实战(6)  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  如何在建站之星绑定自定义域名?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  南京网站制作费用,南京远驱官方网站?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  微信推文制作网站有哪些,怎么做微信推文,急?  使用Dockerfile构建java web环境  Python图片处理进阶教程_Pillow滤镜与图像增强  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel怎么实现模型属性的自动加密  Swift中循环语句中的转移语句 break 和 continue  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  如何用狗爹虚拟主机快速搭建网站?