Java: Copying an exe-file and launching afterwards fails

Posted by Philip on Stack Overflow See other posts from Stack Overflow or by Philip
Published on 2010-05-20T14:52:42Z Indexed on 2010/05/21 17:40 UTC
Read the original article Hit count: 224

Filed under:
|
|
|
|

Hi,

I want to copy an existing .exe-file from one directory to another and launch it afterwards with Java. Like this:

FileIO.copy( new File( sourceFile ), new File( targetFile ) );
System.out.println( "Existing: " + new File( targetFile ).exists() );
System.out.println( "Launching " + targetFile );
String cmd[] = { targetFile };
Process p = Runtime.getRuntime().exec( cmd );
p.waitFor();
System.out.println( "Result: " + p.exitValue() );

The output is like this:

Existing: true
Launching C:\test\Launcher.new.exe
Result: 2

So Java says that the file is valid and existing, but Windows just can't launch the process because it thinks the file is not there. The pathes are absolute and with backslashes. I also have all permissions on the files so I'm allowed to execute them. The Launcher.new.exe is generated by Launch4j, so it's more or less standalone. At least it doesn't depend on DLLs in the same folder. But strange: It works when I copy and launch the notepad.exe.

One more strange thing: If I don't copy the file by Java but by hand, the launching also fails with the same error.

OS is Vista with SP1.

Any clue?

© Stack Overflow or respective owner

Related posts about java

Related posts about process