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 directoryTo 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<File> 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
IOException
public 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.Copyright © 2018. All rights reserved.