Wie genau funktioniert die Java-Anwendung beenden-code der main () - Methode?
Habe ich folgende Zweifel im Zusammenhang einer einfachen Kommandozeile Java-Anwendung.
Also ich habe das Befehl Linie Anwendung, die startd durch eine main() Methode definiert innerhalb einer Main Klasse.
Wie immer diese main() Methode definiert mit dieser Signatur:
public static void main(String[] args) {
Also zurück geben ist void. So sollte es bedeuten, dass es nicht wieder Wert.
Aber warum, wenn seine Ausführung korrekt beendet habe ich erhalten diese Meldung in die IntelliJ-Konsole?
Disconnected from the target VM, address: '127.0.0.1:54090', transport: 'socket'
Process finished with exit code 0
Was genau repräsentieren die exit-code 0?
Ich denke, dass es bedeutet, dass das Programm ordnungsgemäß beenden seiner Ausführung entstehen, ohne in irgendwelche Fehler.
So, jetzt habe ich die folgenden 2 Zweifel:
- Wenn es wahr ist, warum es passiert, wenn mein main() Methode zurück void?
- Wie kann ich wieder eine andere exit-code, wenn mein Antrag Ende mit einem Fehler? Existiert eine standard-exit-code-Wert für das Ende mit Fehler?
Tnx
System.exit(1)
Bitte Lesen Sie die Dokumentation
System
Klasse, besonders exit(int)
.Der exit-code 0 ist nur 0 durch die Konvention für java. In einem normalen Fall eine exit-code andere dann 0 sein sollte, ein Indikator für einen Fehler, das muss nicht der Fall sein, wenn der Programmierer hinter dem java-programm nicht Folgen dieser Konvention bei der Verwendung von System.exit();
InformationsquelleAutor AndreaNobili | 2015-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die VM beendet wird, wenn
System.exit(exitCode)
heißtIm ersten Fall, der exit-code ist 0. Im zweiten Fall, es ist die exit-code, der an die
exit()
Methode.Vergessen Sie nicht, dass, selbst wenn Ihre main () - Methode gibt, das Programm wird weiterhin ausgeführt, bis keine nicht-daemon-thread ausgeführt wird nicht mehr. Und jeder thread läuft in die VM beenden möchten ausdrücklich erwähnen.
Den exit-code 0 bedeutet, dass alles lief wie erwartet. Sie können wählen, um alle anderen exit-code, um das signal zu einem außergewöhnlichen Zustand der Umwelt.
Ein daemon-thread ist ein thread, der automatisch den Betrieb Stoppt, wenn der Letzte "normale", nicht-daemon-threads beendet wird. Lesen Sie docs.oracle.com/javase/7/docs/api/java/lang/Thread.html
InformationsquelleAutor JB Nizet
Exit-code des Prozesses-Prozess-Berichte, die zu operating-system-Fehler-code.
Java-Designer könnte machen
main()
Methode zurückint
so, dass JVM mitteilen konnte OS dieser Wert als ein Prozess exit-code. Aber Sie beschlossen, main nichtig, sondern bieten API, aktualisieren Sie diesen code mitSystem.exit(exitCode)
. Der Vorteil dieser Lösung ist, das Programm kann entscheiden, zu beenden an jeder Stelle und in jedem thread, nicht nur in der main-Methode und im Haupt-thread.InformationsquelleAutor AlexR
Einen exit-code von 0 bedeutet, dass es normal beendet wurde, das ist standard für alle Prozesse, nicht nur java. Der Wert ist nicht Rückkehr aus der main-Methode (es ist leer), wird aber von der JVM selbst.
Einen anderen Wert angegeben werden kann, z.B.
System.exit(1)
um anzuzeigen, einige Fehler, und das Programm Stoppt.InformationsquelleAutor NickJ