2016-11-01 5 views
-2

Ich habe eine Java Klasse mit dem Namen Client mit main(String[] args).Wie kann ich ein Java-Programm ausführen, das ein Befehlszeilenargument an eine Methode übergibt?

main verwendet Klassen, die in jar mit der Bezeichnung lib.jar definiert sind. Wie kann ich das Programm von der Befehlszeile ausführen, indem ich das Befehlszeilenargument an main übergebe?

Ich habe versucht:

java -cp lib.jar Client arg1 arg2 

und bekam diesen Fehler:

Error: Could not find or load main class Client

+0

Ist es 'main()' oder ist es 'main (String [] args)'? – childofsoong

+2

"Es hat nicht funktioniert" ist * nie * genug Informationen. Was Sie gezeigt haben, ist in der Tat, wie Sie Befehlszeilenargumente übergeben. Also was ist passiert? Wenn Sie eine Exception zum Laden von Klassen bekommen haben, dann wollten Sie vielleicht 'java -cp lib.jar; .' (Windows) oder' java -cp lib.jar: .' (Unix), damit das aktuelle Verzeichnis ebenfalls im Klassenpfad ist ? Ohne zu wissen, was passiert ist, können wir Ihnen nicht helfen - wir raten nur. –

+0

@childofsoong 'main (String [] args)' –

Antwort

-1

java -cp lib.jar packageName.className arg1 arg2

+0

Dies ist nicht anders als das, was ich getan habe –

+0

@AbAppletic: Nun, es ist, weil wir nicht wissen, ob das Problem ist, dass Sie den Klassennamen nicht packen-qualifizieren. Dies ist die Art von Sache, die das Posten eines [mcve] helfen würde, zu vermeiden. Ohne ausreichende Informationen laden Sie nur andere dazu ein, Zeit zu verlieren. –

+0

@AbAppletic, Ja, Sie haben in der Frage nicht angegeben, dass Sie den Paketnamen angegeben haben oder nicht. –

0

java -jar filename. jar arg1 arg2

Angenommen, Sie haben das Projekt als .jar exportiert.

public static void main(String[] args) { 
    System.out.println(args[0]); 
} 

Stellen Sie sicher, dass Sie auch die Hauptmethode korrekt ausführen.

Verwandte Themen