2016-10-21 9 views
-2

Ich arbeite an einem Projekt in Java, wo ich den Benutzer die Befehlszeilenargumente etwas ähnlicher setzen lassen muss, wie wir es in UNIX tun, um bestimmte Funktionalitäten auszuführen.Kommandozeilenparameter in Java

zB Wenn mein Programmname ist foo.java:

//So when I compile it 
javac foo.java <Enter> 
//Run it 
java foo   <Enter> 
//Input Argument 
list    <Enter> 
<List of all the users> 

Ich weiß, dass wir die Befehlszeilenargumente mit Java zB Java-foo Liste passieren kann, aber wenn ich auf die Kommandozeile nicht passieren Argument und muss die Argumente als Unix-Shell-Befehl übergeben. Jedes Beispiel würde helfen !!

Dank

+1

Ich habe keine Ahnung, was Ihre Frage ist. – John3136

+0

verwechseln Sie Befehlszeilenargumente mit Benutzereingaben während der Ausführung Ihres Programms? –

+0

von ** Liste ** meinst du Ausführung ** Java Foo Liste ** und Ausgabe der Liste? –

Antwort

1

Es klingt wie Sie Eingabe durch ein Rohr wie

, zu geben in der Lage sein wollen
echo arg1 arg2 arg3 | java foo 

Um dies zu tun, muss Ihr Programm Standardeingabe gelesen. Dies wird typischerweise mit der Klasse Scanner erreicht.

Hier ist ein kurzes Beispiel:

import java.util.Scanner; 

public class ScannerTest { 
    public static void main(String[] args) { 
    Scanner console = new Scanner(System.in); 
    String input = console.nextLine(); 
    System.out.println(input); 
    } 
} 

mit java ScannerTest Aufrufen wartet, bis der Benutzer eine Zeile eingibt und Hits zurück. Das Aufrufen mit echo "Hello, world!" | java ScannerTest erfolgt im Wesentlichen sofort, da Java die Pipe als Standardeingabe betrachtet, anstatt die Tastatur als Standardeingabe zu verwenden.

0

Ich glaube, dass Sie eine Befehlszeile Java-Anwendung erstellen möchten, die ähnlich wie Linux-Programme ausgeführt wird.

Ich denke, eine gute Möglichkeit ist, https://argparse4j.github.io/ Bibliothek zu verwenden. Sie können da seine ganz intuitiv einen Blick in ihre Proben haben:

ArgumentParser parser = ArgumentParsers.newArgumentParser("Checksum") 
        .defaultHelp(true) 
        .description("Calculate checksum of given files."); 
      parser.addArgument("-t", "--type") 
        .choices("SHA-256", "SHA-512", "SHA1").setDefault("SHA-256") 
        .help("Specify hash function to use"); 
      parser.addArgument("file").nargs("*") 
        .help("File to calculate checksum"); 
Namespace ns = null; 
     try { 
      ns = parser.parseArgs(args); 
     } catch (ArgumentParserException e) { 
      parser.handleError(e); 
      System.exit(1); 
     } 

Dann können Sie rufen wie: $ java Checksum -h

Verwandte Themen