Projekt: Jd Binexec

Jd BinExec ist eine einfache Java Bibliothek, mit der man leicht native Executables ausführen kann. Der Mehrwert entsteht durch das simple Handling im Client-Code. Muss man sich sonst um Befehl, Rückgaben und eventuelle Exceptions kümmern, vereinfacht sich der Aufruf enorm.

Mit einem erzeugten ExecModel, das das Kommando und die Parameter kapselt…

1
2
3
    ExecModel execModel = new ExecModel();
    execModel.setCmd("docker");
    execModel.setParams(new String[] {"ps", "-a"});

… vereinfacht sich der Aufruf zu einem einzeiligen Code.

4
5
    ExecResult execResult = new Exec().execute(execModel);
    

Der Output wird jeweils gesammelt, so dass man am Ende leicht an die Ausgaben kommt:

5
6
    System.out.println(execResult.getStdOutput());
    System.err.println(execResult.getErrorOutput());

Ich selbst benutze es, um Docker zu steuern. Dabei geht es zumeist um das Starten und Stoppen von Containern, oder das Erzeugen von Images.

Anstatt der Bibliothek docker-java, die Docker via Rest-Api steuert, gehe ich einen für den Client einfacheren Weg über die Prozesssteuerung. Eingespart werden hier Ressourcen bei Entwicklung und Laufzeit. Pragmatismus schlägt hier eine 100%-Docker-Rest-Api-Lösung, von der man nur einen Bruchteil benötigt.

In komplexeren Szenarien würde ich weiterhin docker-java benutzen.