Skip to content

Latest commit

 

History

History
123 lines (97 loc) · 4.42 KB

README.md

File metadata and controls

123 lines (97 loc) · 4.42 KB

License Maven Central javadoc

toolarium-system-command

Implements a simple java library which abstract system calls.

Built With

  • cb - The toolarium common build

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Gradle:

dependencies {
    implementation "com.github.toolarium:toolarium-system-command:0.9.0"
}

Maven:

<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();