public class JavaProcessBuilder extends Object
ProcessBuilder, this class makes the java process creation easier.
This class simply manages collection of java process attributes and help your to create command out of it.
JavaProcessBuilder jvm = new JavaProcessBuilder();
JavaProcessBuilder is pre-configured with current java home and current working directory initially.
jvm.javaHome(new File("c:/jdk5")); // to configure java home
jvm.workingDir(new File("c:/myProject")); // to configure working directory
To configure various attributes:
// to configure classpath
jvm.classpath("lib/jlibs-core.jar") // relative path from configured working dir
.classpath(new File("c:/myproject/lib/jlibs-xml.jar");
// to get configured classpath
List classpath = jvm.classpath();
// to configure additional classpath
jvm.endorsedDir("lib/endorsed")
.extDir("lib/ext")
.libraryPath("lib/native")
.bootClasspath("lib/boot/xerces.jar")
.appendBootClasspath("lib/boot/xalan.jar")
.prependBootClasspath("lib/boot/dom.jar");
// to configure System Properties
jvm.systemProperty("myprop", "myvalue")
.systemProperty("myflag");
// to configure heap and vmtype
jvm.initialHeap(512); // or jvm.initialHeap("512m");
jvm.maxHeap(1024); // or jvm.maxHeap("1024m");
jvm.client(); // to use -client
jvm.server(); // to use -server
// to configure remote debugging
jvm.debugPort(7000)
.debugSuspend(true);
// to configure any additional jvm args
jvm.jvmArg("-Xgc:somealgo");
// to configure mainclass and its arguments
jvm.mainClass("example.MyTest")
.arg("-xvf")
.arg("testDir");
To get the created command:
String command[] = jvm.command();Any relative paths specified, will get resolved relative to working directory during command creation.
To launch it:
Process p = jvm.launch(System.out, System.err);
the two arguments to launch(...) specify to which process output and error streams to be redirected.
These arguments can be null, if you don't want them to be redirected.| Constructor and Description |
|---|
JavaProcessBuilder() |
public JavaProcessBuilder javaHome(File javaHome)
public File javaHome()
public JavaProcessBuilder workingDir(String dir)
public JavaProcessBuilder workingDir(File dir)
public File workingDir()
public JavaProcessBuilder classpath(String resource)
public JavaProcessBuilder classpath(File resource)
public JavaProcessBuilder endorsedDir(String dir)
public JavaProcessBuilder endorsedDir(File dir)
public JavaProcessBuilder extDir(String dir)
public JavaProcessBuilder extDir(File dir)
public JavaProcessBuilder libraryPath(String dir)
public JavaProcessBuilder libraryPath(File dir)
public JavaProcessBuilder bootClasspath(String resource)
public JavaProcessBuilder bootClasspath(File resource)
public JavaProcessBuilder appendBootClasspath(String resource)
public JavaProcessBuilder appendBootClasspath(File resource)
public JavaProcessBuilder prependBootClasspath(String resource)
public JavaProcessBuilder prependBootClasspath(File resource)
public JavaProcessBuilder systemProperty(String name, String value)
public JavaProcessBuilder systemProperty(String name)
public JavaProcessBuilder initialHeap(int mb)
public JavaProcessBuilder initialHeap(String size)
public String initialHeap()
public JavaProcessBuilder maxHeap(int mb)
public JavaProcessBuilder maxHeap(String size)
public String maxHeap()
public JavaProcessBuilder client()
public JavaProcessBuilder server()
public String vmType()
public JavaProcessBuilder jvmArg(String arg)
public JavaProcessBuilder mainClass(String mainClass)
public String mainClass()
public JavaProcessBuilder debugSuspend(boolean suspend)
public boolean debugSuspend()
public JavaProcessBuilder debugPort(int port)
public int debugPort()
public JavaProcessBuilder arg(String arg)
public String[] command() throws IOException
IOExceptionpublic Process launch(OutputStream output, OutputStream error) throws IOException
output - outputstream to which process's input stream to be redirected.
if null, it is not redirectederror - outputstream to which process's error stream to be redirected.
if null, it is not redirectedIOException - if an I/O error occurs.RuntimeUtil.redirectStreams(Process, java.io.OutputStream, java.io.OutputStream)Copyright © 2021. All rights reserved.