I am writing a program to execute a .bat to call another java program. The reason is I want to set the JVM heap space to larger. Here's an example I've tried. I am only testing on small files so I haven't put the JVM setting commands in. For now my purpose is to have a copied of the target file when I run the java...
The problem is that when I run the first java to call bat, it only shows the header message, seems it does not run the file properly. The command line hangs and I cannot type any things. By looking at the task panel, I found a new cmd process and java thread is called and I know the code does something, but why this happens? I am quite new to java and hope could have your help. Any ideas what's going on?
Your comments are welcome and appreciate. Thanks indeed.
Here's the code
The bat file, same dir with Helloworld.java
and finally the ResizeImage.java
Author and all-around good cowpoke
posted 6 years ago
Your code depends on the Process writing all the stdout first, followed by the std err output. The process may be stuck trying to write to stderr first.
To cover all possibilities, you should be starting two Threads, one to read stdout and one to read stderr. As I recall the javadocs for Process talk about this.