沙丘答案解决了您的问题,但在这种情况下,我强烈建议您使用其他方法。不应依赖外壳程序来设置环境参数,而应在Java代码中执行此操作。这样,您无需知道系统上存在哪些外壳以及它们的语言是什么,它就可以在所有平台上工作。
为此,您可以使用
Runtime.exec(String[] cmd, String[]environment)重载(javadoc)。作为第二个参数,您可以传递一个包含子进程将看到的所有环境变量的数组。
ProcessBuilderAPI
甚至更好一点:
ProcessBuilder pb = new ProcessBuilder("executable.so");Map<String, String> env = pb.environment();env.put("LD_LIBRARY_PATH", "/proj/something");Process javap = pb.start();javap.waitFor();这样,子进程将继承Java进程的所有环境变量,并另外
LD_LIBRARY_PATH设置变量。



