获取java.io.IOException:无法运行程序“cf”:error=2,当我使用java代码Runtime.getRuntime().exec(testCommand)执行cf命令时,没有这样的文件或目录错误;在MAC当我从CLI执行时,相同的命令工作正常。cf是否需要设置环境变量?
ohtdti5x1#
当您从命令行执行命令时,shell知道在哪里可以找到可执行文件,因为它可以访问PATH环境变量,该变量包含可执行文件所在的目录列表。但是,当使用Runtime.getRuntime().exec()从Java程序运行命令时,系统可能无法访问相同的PATH环境变量。要解决此问题,可以在Java代码中提供“cf”可执行文件的完整路径,也可以修改Java进程的PATH环境变量。关于修改Java进程的PATH,您可以看到here前面的SO问题。
Runtime.getRuntime().exec()
1条答案
按热度按时间ohtdti5x1#
当您从命令行执行命令时,shell知道在哪里可以找到可执行文件,因为它可以访问PATH环境变量,该变量包含可执行文件所在的目录列表。但是,当使用
Runtime.getRuntime().exec()
从Java程序运行命令时,系统可能无法访问相同的PATH环境变量。要解决此问题,可以在Java代码中提供“cf”可执行文件的完整路径,也可以修改Java进程的PATH环境变量。
关于修改Java进程的PATH,您可以看到here前面的SO问题。