Runtime.getRuntime().exec(cmdArray) is not properly moving all files

I am running the following code, but it always moves exactly 6 files, no matter what files I put into the incoming directory, leaving the rest of the files behind and indicating that the process is still running.

What could be a possible reason for this?
package com.hsc.underwriting.test;
 
import org.junit.Test;
 
public class IOTest {
	@Test
	public final void testAutoMove() {
		try {
			String[] cmdArray = new String[5];
			cmdArray[0] = "cmd.exe";
			cmdArray[1] = "/C";
			cmdArray[2] = "move";
			cmdArray[3] = "incoming\\**";
			cmdArray[4] = "outgoing\\";
 
			Process autoMoveProcess = Runtime.getRuntime().exec(cmdArray);
			//Thread.sleep(10000);
			autoMoveProcess.waitFor();
			autoMoveProcess.destroy();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
 
}

Open in new window

LVL 1
aturetskyAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
CEHJConnect With a Mentor Commented:
That will produce output that you need to consume on separate threads. See

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
0
 
objectsCommented:
Is the process completing?  If not, try this:

http://helpdesk.objects.com.au/java/runtime-exec-locks-up

0
 
aturetskyAuthor Commented:
CEHJ, the solution they provided worked great.  Thanks !!!!!!!!!!!!!!
0
 
CEHJCommented:
:-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.