Implements a simple java library which abstract system calls.
- cb - The toolarium common build
We use SemVer for versioning. For the versions available, see the tags on this repository.
dependencies {
implementation "com.github.toolarium:toolarium-system-command:0.9.0"
}
<dependency>
<groupId>com.github.toolarium</groupId>
<artifactId>toolarium-system-command</artifactId>
<version>0.9.0</version>
</dependency>
Start a process synchronous:
ISynchronousProcess mySyncProcess = SystemCommandExecuterFactory.builder()
.system().command("dir")
.build()
.runSynchronous();
Start a process asynchronous and get output streams and inherit input stream which reads from the parent standard input stream if it is needed:
IProcessInputStream processInputStream = ProcessStreamFactory.getInstance().getStandardIn();
ProcessBufferOutputStream output = ProcessStreamFactory.getInstance().getProcessBufferOutputStream();
ProcessBufferOutputStream errOutput = ProcessStreamFactory.getInstance().getProcessBufferOutputStream();
IAsynchronousProcess myAsyncProcess = SystemCommandExecuterFactory.builder()
.system().command("dir")
.build()
.runAsynchronous(processInputStream, output, errOutput);
myAsyncProcess.waitFor();
Start a process asynchronous silently:
IAsynchronousProcess myAsyncProcess = SystemCommandExecuterFactory.builder()
.system().command("dir")
.build()
.runAsynchronous(ProcessStreamFactory.getInstance().getStandardIn(), null, null);
myAsyncProcess.waitFor();
Start a java process asynchronous:
ProcessBufferOutputStream output = new ProcessBufferOutputStream();
ProcessBufferOutputStream errOutput = new ProcessBufferOutputStream();
IAsynchronousProcess myAsyncProcess = SystemCommandExecuterFactory.builder()
.java("com.github.toolarium.system.command.TestMain")
.inheritJre()
.inheritClassPath()
.environmentVariable("ENV_KEY", "env value")
.javaMemory("256M", "1024M")
.systemProperty("mySystemProperty", "system property value")
.parameter("-param1").parameter("-param2=true")
.build()
.runAsynchronous(output, errOutput);
myAsyncProcess.waitFor();
Start a java process and set the classpath:
ProcessBufferOutputStream output = new ProcessBufferOutputStream();
ProcessBufferOutputStream errOutput = new ProcessBufferOutputStream();
IAsynchronousProcess myAsyncProcess = SystemCommandExecuterFactory.builder()
.java("com.github.toolarium.system.command.TestMain")
.inheritJre()
.classPath("build/classes/java/test")
.classPath("build/classes/java/main")
.environmentVariable("ENV_KEY", "env value")
.javaMemory("256M", "1024M")
.systemProperty("mySystemProperty", "system property value")
.parameter("-param1").parameter("-param2=true")
.build()
.runAsynchronous(output, errOutput);
myAsyncProcess.waitFor();
Start a jar process asynchronous:
ProcessBufferOutputStream output = new ProcessBufferOutputStream();
ProcessBufferOutputStream errOutput = new ProcessBufferOutputStream();
IAsynchronousProcess myAsyncProcess = SystemCommandExecuterFactory.builder()
.jar("build/libs/toolarium-system-command-0.9.0-test.jar")
.inheritJre()
.environmentVariable("ENV_KEY", "env value")
.javaMemory("256M", "1024M")
.systemProperty("mySystemProperty", "system property value")
.parameter("-param1").parameter("-param2=true")
.build()
.runAsynchronous(output, errOutput);
myAsyncProcess.waitFor();