Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Java execute BAT have no response

 
niqi li
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

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 Helloworld.java


The bat file, same dir with Helloworld.java


and finally the ResizeImage.java
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13071
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.

Bill
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic