Linux copy files from Java program

copy, java, linux

Solution

It works with the below code,

            String[] b = new String[] {"bash", "-c", "cp -R \"" + strSource + "/\"* \"" + strDestination + "/\""};  
        p = Runtime.getRuntime().exec(b);

I googled it and found the link

http://www.coderanch.com/t/423573/java/java/Passing-wilcard-Runtime-exec-command

Problem

I have written a small java code with getRuntime() API to copy files from One directory to another, it it failing, I am not able to understand why? When I run the command from shell it runs fine, can anyone, please let me know the mistake I am doing ``` 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 ```

Original source

Related problems