Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 7 von 7
  1. #1
    Zaungast
    Registriert seit
    27.09.2009
    Beiträge
    28

    Standard Welche Art von CLI soll ich nehmen?

    Ich will für meine Server-Anwendung eine CLI schreiben.

    Nun gibt es ja zwei Arten von CLI.

    Einmal wie z.B. bei Git, wo man die Parameter direkt beim Programmaufruf mitgibt. (also "git fetch ...")
    Und einmal wie z.B. bei MySql, wo intern eine Kommandozeile angeboten wird.

    In welchem Fall wäre welche Variante geeignet?

  2. #2
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.355

    Standard

    Zitat Zitat von florida Beitrag anzeigen
    ..
    Nun gibt es ja zwei Arten von CLI.
    ..
    In welchem Fall wäre welche Variante geeignet?
    Nur 2? Die Frage ist etwas vage gestellt.
    Was ist Dein Ziel?

    Was ist Deine Plattform?

    In Linux kann man munter mixen, Input / Output pipen und es mag so aussehen, also könne man munter wechseln.
    Ob ich ein Statement in der SQL Console ausführe oder es der Console als Parameter mitgebe, ist vielleicht egal, Geschmackssache oder eben eine Frage, was man erreichen will.

    Ist ein beliebige OS Console gegeben, kann ich von dort sozusagen alles erreichen, pipen, umleiten, durchsuchen, wie ich es möchte und natürlich alles nutzen/einbeziehen, was installiert ist.
    Innerhalb einer (spezialisierten) Console sieht das etwas anders aus. Mglw gibt es hier mächtige Befehle, die von außen (als Parameter) funktional nicht umsetzbar wären oder andere interessante Dinge , die sich so besserf umsetzen lassen.
    Am ehesten würde ich hier an stateless/stateful denken.
    Innerhalb einer Console kann man bequem einen Zustand verwalten ohne irgendwelche "Krücken" (Dateien) benutzen zu müssen.
    Gruß, defo

  3. #3
    Zaungast
    Registriert seit
    27.09.2009
    Beiträge
    28

    Standard

    Nun, ich hab jetzt keine eigene Scriptsprache für meine Anwendung entwickelt, die eben mit Bedingungen/Schleifen umgehen kann. Wenn man die Parameter über den Linux-Terminal übergibt, kann man ja mittels sh-Files mein Programm dennoch innerhalb von Bedingungen/Schleifen problemlos verwenden. Deswegen tendiere ich zu der Parametervariante.

    Als Plattform wie erwähnt Linux (Ubuntu 16.04)

  4. #4
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.309

    Standard

    Wo ist dann da die CLI?
    Du imterpretierst lediglich die Aufrufparameter beim Programmstart
    Christian

  5. #5
    Zaungast
    Registriert seit
    27.09.2009
    Beiträge
    28

    Standard

    Nach dem Durchstöbern einiger Frameworks wurde eben diese Variante auch als CLI bezeichnet.

    Jedenfalls fände ich es klasse, wenn es ein CLI-Framework gäbe, das eben auch mit voller Batch-Ausrüstung (also Schleifen, Bedingungen) daherkommt. Kennt da jemand was?

  6. #6
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.355

    Standard

    Zitat Zitat von florida Beitrag anzeigen
    Nach dem Durchstöbern einiger Frameworks wurde eben diese Variante auch als CLI bezeichnet.

    Jedenfalls fände ich es klasse, wenn es ein CLI-Framework gäbe, das eben auch mit voller Batch-Ausrüstung (also Schleifen, Bedingungen) daherkommt. Kennt da jemand was?
    Also was Du letztlich umsetzen willst, ist mir immer noch nicht klar.
    Meinst Du z.B. sowas wie Cement? Das ist ein python framework, was u.a. eine vorgfertigte command line Parametrierung uvma mitbringt.

    P.S. Ist ja java forum hier.
    Keine Ahnung, was da alles geht. Vielleicht JCommander lib?
    Gruß, defo

  7. #7
    Zaungast
    Registriert seit
    27.09.2009
    Beiträge
    28

    Standard

    So, meine Entscheidung ist gefallen.

    Ich biete eine "interne" CLI an. Also man startet das Programm und kann dann seine Befehle nacheinander abschicken. Batch-Support (also mit Schleifen, Bedingungen etc.) ermögliche ich, indem die ganzen Befehle des Batches in Java-Code übersetzt werden, im String abgelagert werden und dort einfach mittels JavaCompiler ausgeführt werden.

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •