in reply to ARGV issue.

You should use the method
public Process exec(String[] cmdarray) throws IOException
instead of
public Process exec(String command) throws IOException
This will allow you to specify exactly what arguments you want to pass, spaces and all. Note that the issue here is entirely with Java, and not at all with Perl.