无法使用runtime.exec设置env vairables

时间:2015-06-04 16:17:34

标签: java unix

我必须从我的Java程序执行unix命令,在执行命令之前,需要设置一些env变量。

但我无法设置env变量,因为unix命令不成功。

这是我的代码段:

String[] cmd=new String[] {
                "/u01/IDMTOP/products/dir/oid/bin/ldapmodify",
                "-h ",
                oid_host,
                "-p ",
                oid_port,
                "-D ",
                oid_user,
                "-w ",
                oid_password,
                "-c ",
                "-v ",
                "-f ",
                filename};

        String[] envp = new String[] {
                "OARCLE_HOME=" + "/u01/IDMTOP/products/dir/oid",
                "INSTANCE_HOME=" + "/u01/IDMTOP/config/instances/oid1" };
        System.out.println(cmd);
        try {
            Process p;
            p=Runtime.getRuntime().exec(cmd, envp);

2 个答案:

答案 0 :(得分:0)

您应首先设置正确的变量ORACLE_HOME而不是OARCLE_HOME:)

答案 1 :(得分:0)

实际上, 设置了环境变量。只是当你这样做时你创建的shell然后退出,它们会再次消失。

这是一个常见的错误。环境变量在当前shell进程中设置;如果已将其设置为export,则会将其分享给任何进程。

您需要在Java进程外部的环境中设置它们