gpt4 book ai didi

java - Runtime.getRuntime().exec(cmd, vars) 在 Linux 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:07 25 4
gpt4 key购买 nike

使用时

final Map<String, String> env = new HashMap<String, String>(System.getenv());
env.put("ECLIPSE_PROJ_PATH", fileSelectedPath);
final String[] envVars = SystemUtils.mapToStringArray(env);
try {

Runtime.getRuntime().exec("/usr/bin/gedit",envVars).waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}

它不起作用,gedit 不显示,也没有发生异常。

但是当删除环境变量并且仅在 exec 方法中使用命令时,例如

Runtime.getRuntime().exec("/usr/bin/gedit").waitFor();

它工作正常。

我需要在运行程序时设置环境变量。注意:这在 Windows 上运行良好。

最佳答案

我不确定 SystemUtils.mapToStringArray 返回什么,但使用 ProcessBuilder 可能更容易,其中可以在 Map 中提供环境变量。

http://docs.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

http://docs.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html#environment()

关于java - Runtime.getRuntime().exec(cmd, vars) 在 Linux 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20330362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com