bom dia!
Estou com um problema com java, me perdoem mas ainda nao tenho tanto conhecimento…
estou usando java no oracle 10g para executar comandos unix…tipo chmod, copy etc,
eu nao consigo retorna um inputstream que eu preciso para ler as linhas do comando que volta as variaveis de ambiente…
aqui vai o codigo
private static InputStream ExecuteComand(String cmd) {
boolean STDOUT = false;
boolean STDERR = false;
boolean LOGGER = true;
InputStream so = null;
InputStream se = null;
Thread o = null;
Thread e = null;
int rc = -1;
String error = "Error inproper call";
FileOutputStream fos = null;
try {
STDERR = true;
STDOUT = true;
//System.out.println(cmd);
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(cmd);
so = p.getInputStream();
se = p.getErrorStream();
if (STDOUT) {
capture(so, fos, "SAIDA", o);
}
if (STDERR) {
capture(se, null, "ERRO", e);
}
try {
rc = p.waitFor();
/* Handle exceptions for waitFor() */
} catch (InterruptedException intexc) {
System.out.println("Interrupted Exception on waitFor: " +
intexc.getMessage());
}
if (o != null) {
o.join();
o =null;
}
if (e != null) {
e.join();
e =null;
}
if (fos != null) {
fos.flush();
fos.close();
}
se.close();
so.close();
System.out.println("ExitValue: " + rc);
} catch (Throwable t) {
System.out.println("ExitValue: " + rc);
t.printStackTrace();
} finally {
if (LOGGER) {
LogCmd(error, rc);
STDOUT =false;
STDERR =false;
LOGGER =true;
}
}
System.out.println("executou até o final");
return so;
}
e dá este erro qdo eu tento pega o retorno com objeto inputstream em outro método
java.io.IOException: Pipe closed
at java.io.PipedInputStream.read(PipedInputStream.java)
at oracle.aurora.java.lang.OracleProcess$ProcessInputStream.read(OracleProcess.java)
at java.io.PipedInputStream.read(PipedInputStream.java)
at java.io.InputStream.read(InputStream.java)
at java.io.InputStreamReader.fill(InputStreamReader.java)
at java.io.InputStreamReader.read(InputStreamReader.java)
at java.io.BufferedReader.fill(BufferedReader.java)
at java.io.BufferedReader.readLine(BufferedReader.java)
at java.io.BufferedReader.readLine(BufferedReader.java)
at ExecOSCmdRestrict.ValidateDir(ExecOSCmdRestrict.java:79)
at ExecOSCmdRestrict.ChmodFile(ExecOSCmdRestrict.java:26)