首页 > 解决方案 > Java Runtime.getRuntime().exec - 没有这样的文件或目录

问题描述

使用Runtime.getRuntime().exec( cmdAry );相同的一个字符串作为数组。

Exeption Cannot run program "libreoffice": error=2, No such file or directory

如果我在终端中输入确切的命令字符串,它就可以工作。

这是命令字符串:

libreoffice --impress --show /home/xxx/ImpressTests/ShowTestOne.odp

Linux Mint 19.3 相同的 java 程序在 Windows 10 上运行良好。

在程序成功运行后,Linux 终端上会显示此内容。重新保存文件并不能解决此问题。

xxx@LM19RyzenVM:~/CodeJava$ libreoffice --impress --show /home/xxx/ImpressTests/ShowTestOne.odp
func=xmlSecCheckVersionExt:file=xmlsec.c:line=188:obj=unknown:subj=unknown:error=19:invalid version:mode=abi compatible;expected minor version=2;real minor version=2;expected subminor version=25;real subminor version=26
xxx@LM19RyzenVM:~/CodeJava$

这是导致失败的 libreoffice 错误吗?这以前有效。如何了解有关错误的更多信息?这是在 VirtualBox VM 中运行的。这可能有区别吗?我现在去真机上测试。

谢谢。

标签: javaruntimeexec

解决方案


我找到了。

https://bugs.documentfoundation.org/show_bug.cgi?id=118373

这是一个已知的错误。出于某种原因,Windows 不在乎。但是在从 Java 启动的 Linux 上,如果子进程写入 SYSERR,Java 会丢弃它。所以也许我可以将它包装在 Linux 上的脚本中以覆盖错误,直到修复到达。


推荐阅读