首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >诊断和修复平台相关的Java Runtime.exec静默故障

诊断和修复平台相关的Java Runtime.exec静默故障
EN

Stack Overflow用户
提问于 2018-08-09 22:51:24
回答 1查看 29关注 0票数 0

我有一个使用Runtime.getRuntime.exec运行Python脚本的Java程序,例如:

代码语言:javascript
复制
System.out.println("Flying Circus - running monty.py on " + args[0]);
Runtime.getRuntime().exec("python monty.py " + args[0]);

它在我的个人计算机上工作正常,从类文件和JAR文件运行。但是,当我将JAR文件移动到另一台计算机(安装了Java和正确版本的Python,尽管我不知道它是运行的是官方Java还是开源仿制品,如Gnu Common Java)时,python脚本调用会默默地失败,不会出现任何错误。

更重要的是,当我采用完全相同的函数调用,并将它们放在一个只调用python脚本的简约程序中时,它可以正常工作。

我手动检查了有问题的程序,没有发现会导致静默失败的“抓取”的证据,包括糟糕的变量清除,糟糕的变量共享,阻塞/非阻塞和并发问题,或线程。

有人能推荐一个替代函数或包装函数,它必须运行给定的命令并报告任何形式的失败吗?失败包括:“程序没有运行”,“命令行上找不到命令”,以及“程序抛出异常或退出时代码不为0”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-02 02:09:09

找到了问题所在。另一台计算机使用的是开源Java仿制品,可能是Gnu Common Java或类似的)。我以前遇到过Java程序由于其他愚蠢的原因而在我的一个旧Linux VM上由于这些Java山寨而失败的问题。

安装官方的Oracle Java解决了这个问题。提醒:在Linux上,您必须使用sudo运行安装程序,否则它将静默失败,并且不知道发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51770133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档