Was ist der Unterschied zwischen einem Compiler-Fehler und einem Laufzeitfehler (Java)?

1 Antwort

Compiler-Fehler: 

Das bedeutet, dass der Java-Compiler deinen Code nicht kompilieren kann. Das liegt häufig an Syntax-Fehlern, z.B:

  • Fehlende Klammern
  • Fehlendes Semikolon
  • Zugriff auf private Eigenschaften oder Methoden aus anderen Klassen

Ein Bespiel:

int i = "10";

Das ist natürlich kein Integer und kann deshalb nicht von Javac kompiliert werden.

Compiler-Fehler sind also solche, die schon vor der Ausführung des Programms deutlich sind.

Laufzeit-Fehler:

Dabei konnte der Code kompiliert werden. Er ist also syntaktisch korrekt. Diese Fehler treten auf, während das Programm ausgeführt wird (at runtime). Bei einem runtime error wird es an einem bestimmten Punkt abgebrochen. Beispiele:

  • Division durch null
  • NullPointerException (Variable nutzen, die null ist)
  • Array-Indizes nutzen, die außerhalb der bounds liegen
  • Nutzung nicht verfügbarer Ressourcen wie Dateien

Ein Codebeispiel:

double x = 0; // könnte z.B. eine Nutzereingabe sein
double d = 5/x;

Letztendlich fallen Compiler-Fehler schon beim kompilieren auf, d.h. der Code ist ungültig. Laufzeit-Fehler dagegen treten nicht unbedingt bei jeder Ausführung des Programms auf, sondern oft in bestimmten Situationen (ungültige Nutzereingaben, keine Internetverbindung, etc.). Deshalb ist es wichtig, diese Ausnahmen (Exceptions) per try/catch-Konstrukt abzufangen sowie zu verarbeiten.

JBoss startet nicht und meldet "Port 8083 already in use" und andere Fehler, wie kann ich es beheben?

Hallo, wir nutzen Java und Webservice Programme, wofür wir den JBoss verwenden. Nachdem das Programm von einem früheren Mitarbeiter entwickelt wurde, ist mir nicht klar in wie weit etwas Hardkodiert wurde. Die Datenbank scheint auch eher lokal als auf dem Webserver zu sein.

Beim Starten des Serverts via: start %cd%\jbossrun -b 192.168.0.107 kommen folgende Fehlermeldungen:

10:01:32,328 INFO  [WebService] Using RMI server codebase: <a href="http://192.168.0.107:8083/">http://192.168.0.107:8083/</a>
10:01:32,343 ERROR [AbstractKernelController] Error installing to Start: name=jboss:service=WebService state=Create mode=Manual requiredState=Installed 
java.lang.Exception: Port 8083 already in use.

Der Hauptfehler? Via netstat -a -o wurde geguckt.

Anfangs zeigte er einmal Java an. Das wurde beendet via Taskmanager, seitdem läuft kein Programm auf den Port.

10:01:32,343 ERROR [AbstractKernelController] Error installing to Real: name=vfsfile:/C:/Users/GuestPad1/Desktop/jboss-5.0.1.GA/server/default/conf/jboss-service.xml state=PreReal mode=Manual requiredState=Real
org.jboss.deployers.spi.DeploymentException: Error deploying: jboss:service=WebService
    at org.jboss.de

10:01:32,359 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):

DEPLOYMENTS IN ERROR:
Deployment "vfsfile:/C:/Users/GuestPad1/Desktop/jboss-5.0.1.GA/server/default/conf/jboss-service.xml" is in error due to the following reason(s): java.net.BindException: Cannot assign requested address: JVM_Bind

Ich bin gerade echt aufgeschmissen und weiß gerade nicht was ich noch gucken kann und wo der Fehler überhaupt liegt. Die Wochen und Monate zuvor lief alles ohne Probleme. Nachdem ich mich mit dem JBoss nicht wirklich auskenne. (Ich weiß das er ein Server ist um selbstentwickelte Programme / Webservices anzuwenden aber selbst die meisten Anleitungen irritieren mich, nachdem ich den nie selbst eingerichtet habe).

Online finde ich aber außer "schalte alle Programme aus die den Port belegen" nichts hilfreiches.

Da läuft kein Programm weiter auf den Port.

Windows 10, Update 1607 jboss-5-0-1.GA Java 7.0.450 (lt. Programme)

...zur Frage

Was möchtest Du wissen?