I wrote a little java code with getRuntime () API to copy files from one directory to another, it doesnโt work, I canโt understand why? When I run the command from the shell, it works fine, can anyone, please let me know the error I'm making.
private static void copyFilesLinux(String strSource, String strDestination) { String s; Process p; try { // cp -R "/tmp/S1/"* "/tmp/D1/" p = Runtime.getRuntime().exec( "cp -R '" + strSource + "/'* '" + strDestination + "/'"); System.out.println("cp -R \"" + strSource + "/\"* \"" + strDestination + "/\""); System.out.println("cp -R '" + strSource + "/'* '" + strDestination + "/'"); System.out.println(p.toString()); BufferedReader br = new BufferedReader(new InputStreamReader( p.getInputStream())); while ((s = br.readLine()) != null) System.out.println("line: " + s); p.waitFor(); System.out.println("exit: " + p.exitValue()); p.destroy(); } catch (InterruptedException iex) { iex.printStackTrace(); } catch (IOException iox) { iox.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
Output:
cp -R "/tmp/S1/"* "/tmp/D1/" cp -R '/tmp/S1/'* '/tmp/D1/' java.lang.UNIXProcess@525483cd exit: 1
source share