I've been using Runtime.exec() like this:
Runtime rt = Runtime.getRuntime();
try {Process p = rt.exec("MyCommand.bat");} catch (Exception e) {do stuff}
When I start my Java classes, I start them with a batch file that changes to
my apps home directory. I've tried exec() with a full pathname (which
seems to have problems on Windows if it has spaces in it, but I'm not sure
if that's really the problem), with just the simple short batch file name,
and with ".\MyCommand.bat".
I have one class that is VERY simple that has managed to do this okay, but
I've tried this in a number of variations. I even took the simple class
and changed ONLY the batch file name and classname so it would run another
batch file in the same dir. It wouldn't. (Yes, the file had read and exec
permissions set.)
All of these commands worked perfectly on Linux (and I am definately
changing the pathnames to use the correct file separator). So I have:
1) exec(command) that works on Linux, but not on Windows, even with
pathnames corrected,
2) A class that runs a batch file, but will not run others in the same
directory, even if they have the correct permission bits set.
What kind of factors can effect this? I wouldn't think the length of the
filename should matter. I can't figure out what else would be the
difference.
I can post the code of all examples, but it's basically the same as above.
(I've used a String I defined earlier in some cases and also used a string
with quotation marks at the start and end, also.) I just can't figure out
why it works sometimes and not others.
Any ideas?
Thanks!
Hal