Hi
I am launching an shell script in Java IBMi using class Java on my WAS
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
CommandLine cmd = new CommandLine("/home/myuser/test.sh");
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
String[] args={ "arg1", "arg2", "arg3", "arg4", "arg5"};
cmd.addArguments(args);
DefaultExecutor executor = new DefaultExecutor();
executor.setStreamHandler(streamHandler);
executor.setExitValue(0);
executor.execute(cmd);
System.out.println(outputStream.toString());
The script is very simple
#!/usr/bin/qsh
echo File1 $1 >> test.log
echo File2 $2 >> test.log
java -cp >> test.log
The problem is if I launch the shell script using a terminal 5250 throught qsh the output is OK
but if I running from Java/WAS the output is not decode
Output
running
FileIn: File1
FileOut: File2
¦>#Ä#? ÀÁ áÌÁÄâ/ÈÄÇ&Ê?ÄÁËË [ î ëÁ Ä/ÊÅ/ %/ %#ÂÊÁÊ#/ &/Ê/_ÁÈÊ?Ë ëÈ/ÊÈ ¦à
¦>#Ä#? ÀÁ áÌÁÄâ/ÈÄÇ&Ê?ÄÄÁËË &/Ê/_ÁÈÊ?Ë ÊÁÄ#Â#À?Ë $<ñ/Î/
%/>Å ëÈÊ#>Å Â // ã#> áÌÁÄâ/ÈÄÇ&Ê?ÄÁËË $
Any idea ??
Also I test running the command using Java class ProcessBuilder
Proceso = new ProcessBuilder( "/usr/bin/qsh" , "-c", "/home/myuser/test.sh" );
Process p = Proceso.start();
p.waitFor();
Best regars
------------------------------
Jose Luis Nebril
------------------------------