jlibs.core.lang
Class JavaProcessBuilder
java.lang.Object
jlibs.core.lang.JavaProcessBuilder
public class JavaProcessBuilder
- extends Object
Similar to 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.
you can change them as below:
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.
- Author:
- Santhosh Kumar T
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JavaProcessBuilder
public JavaProcessBuilder()
javaHome
public JavaProcessBuilder javaHome(File javaHome)
javaHome
public File javaHome()
workingDir
public JavaProcessBuilder workingDir(String dir)
workingDir
public JavaProcessBuilder workingDir(File dir)
workingDir
public File workingDir()
classpath
public JavaProcessBuilder classpath(String resource)
classpath
public JavaProcessBuilder classpath(File resource)
classpath
public List<File> classpath()
endorsedDir
public JavaProcessBuilder endorsedDir(String dir)
endorsedDir
public JavaProcessBuilder endorsedDir(File dir)
endorsedDirs
public List<File> endorsedDirs()
extDir
public JavaProcessBuilder extDir(String dir)
extDir
public JavaProcessBuilder extDir(File dir)
extDirs
public List<File> extDirs()
libraryPath
public JavaProcessBuilder libraryPath(String dir)
libraryPath
public JavaProcessBuilder libraryPath(File dir)
libraryPath
public List<File> libraryPath()
bootClasspath
public JavaProcessBuilder bootClasspath(String resource)
bootClasspath
public JavaProcessBuilder bootClasspath(File resource)
bootClasspath
public List<File> bootClasspath()
appendBootClasspath
public JavaProcessBuilder appendBootClasspath(String resource)
appendBootClasspath
public JavaProcessBuilder appendBootClasspath(File resource)
appendBootClasspath
public List<File> appendBootClasspath()
prependBootClasspath
public JavaProcessBuilder prependBootClasspath(String resource)
prependBootClasspath
public JavaProcessBuilder prependBootClasspath(File resource)
prependBootClasspath
public List<File> prependBootClasspath()
systemProperty
public JavaProcessBuilder systemProperty(String name,
String value)
systemProperty
public JavaProcessBuilder systemProperty(String name)
systemProperties
public Map<String,String> systemProperties()
initialHeap
public JavaProcessBuilder initialHeap(int mb)
initialHeap
public JavaProcessBuilder initialHeap(String size)
initialHeap
public String initialHeap()
maxHeap
public JavaProcessBuilder maxHeap(int mb)
maxHeap
public JavaProcessBuilder maxHeap(String size)
maxHeap
public String maxHeap()
client
public JavaProcessBuilder client()
server
public JavaProcessBuilder server()
vmType
public String vmType()
jvmArg
public JavaProcessBuilder jvmArg(String arg)
jvmArgs
public List<String> jvmArgs()
mainClass
public JavaProcessBuilder mainClass(String mainClass)
mainClass
public String mainClass()
debugSuspend
public JavaProcessBuilder debugSuspend(boolean suspend)
debugSuspend
public boolean debugSuspend()
debugPort
public JavaProcessBuilder debugPort(int port)
debugPort
public int debugPort()
arg
public JavaProcessBuilder arg(String arg)
args
public List<String> args()
command
public String[] command()
throws IOException
- Returns command with all its arguments
- Throws:
IOException
launch
public Process launch(OutputStream output,
OutputStream error)
throws IOException
- launches jvm with current configuration.
note that, the streams passed are not closed automatically.
- Parameters:
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 redirected
- Returns:
- the process created
- Throws:
IOException - if an I/O error occurs.- See Also:
RuntimeUtil.redirectStreams(Process, java.io.OutputStream, java.io.OutputStream)
Copyright © 2018. All rights reserved.