我必须从我的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);
答案 0 :(得分:0)
您应首先设置正确的变量ORACLE_HOME
而不是OARCLE_HOME
:)
答案 1 :(得分:0)
实际上, 设置了环境变量。只是当你这样做时你创建的shell然后退出,它们会再次消失。
这是一个常见的错误。环境变量在当前shell进程中设置;如果已将其设置为export
,则会将其分享给任何子进程。
您需要在Java进程外部的环境中设置它们