This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I can't get runtime.exec to execute a program in Java. I am trying to execute a bat file. I read that in order to run bat files as opposed to .exe files the runtime command has to include "cmd /c start" before the name of the bat file. I have run bat files successfully this way before.
The command that I am running works when typed from the command line. It is:
StartSimEnv.bat file gives a message about the usage being wrong as if I'm giving the wrong parameters. If I delete imageName from the cmd string it doesn't complain about usage but doesn't do the task I want it to do.
I tried putting the parameters in an array as follows:
Gamaliel Isaac wrote: I know my usage is correct because it works on the command line.
That is a very bad assumption to make -- especially since the executable is telling you that the usage is wrong. Even different command shells behave differently with user input from the command line.
I would recommend modifying the batch file to print out what it will run before it actually run it (adding a single echo should do it). This way you can see the differences in how the executable is being run from the batch file in both cases.
Henry, I commented out echo off in the bat file and still got the same error message without more text. It's possible that the reason for that is that the bat file is calling another file. The file is complicated and hard to understand.
I did try something else I called the bat file with all it's parameters inside another bat file and then called that bat file from runtime.exec() That is working now. To use this approach I will have to use java to create a bat file each time containing the parameters I want.
Even though this is working I am very confused about this.
Gamaliel Isaac wrote:I did look at it and I didn't test all its recommendations because I didn't think they would help but I'll take another look
Big mistake on your part. Implementing the recommendations may not make any difference but without them your code is highly suspect. The diagnostic information they provide may tell you exactly what the problem is.
Joined: Jun 25, 2011
It was a big mistake on my part. I used the method described in the article and it worked.