Beheben Sie die Java.Net.SocketException: Permission Denied in Java

Sheeraz Gul 20 Juni 2023
  1. Ursachen für den Fehler java.net.SocketException: Permission denied in Java
  2. Beheben Sie den Fehler java.net.SocketException: Permission denied in Java
Beheben Sie die Java.Net.SocketException: Permission Denied in Java

Dieses Tutorial demonstriert den Fehler java.net.SocketException: Permission denied in Java.

Ursachen für den Fehler java.net.SocketException: Permission denied in Java

Die SocketException tritt normalerweise auf, wenn es ein Problem mit der Netzwerkverbindung gibt. Es kann Erlaubnis verweigert, Verbindung zurücksetzen oder irgendetwas anderes sein.

Der Fehler java.net.SocketException: Permission denied tritt auf, wenn es keine Erlaubnis vom Netzwerk gibt, sich mit einem bestimmten Port zu verbinden. Der Fehler kann beim Verbinden oder Konfigurieren der Netzwerkeinstellungen auf verschiedenen Plattformen auftreten.

Der Fehler java.net.SocketException: Permission denied kann auf jedem Servertyp wie Tomcat oder OpenShift auftreten.

Hier sind die Hauptgründe für den Fehler java.net.SocketException: Permission denied:

  1. Wenn das Betriebssystem eine bestimmte Portnummer nicht zulässt.
  2. Das Antivirenprogramm oder die Firewall stoppt die Verbindung zu einem bestimmten Netzwerk.
  3. Manchmal ein Problem mit der älteren Java-Version.

Beheben Sie den Fehler java.net.SocketException: Permission denied in Java

Beispielsweise kann es beim Konfigurieren des HTTPS-Zertifikats für den Tomcat-Server beim Starten des Servers zum Fehler java.net.SocketException: Permission denied kommen:

Caused by: java.net.SocketException: Permission denied
                at sun.nio.ch.Net.bind0(Native Method)
                at sun.nio.ch.Net.bind(Net.java:438)
                at sun.nio.ch.Net.bind(Net.java:430)
                at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:225)
                at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
                at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:221)
                at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118)
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:223)
                at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:587)
                at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74)
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1058)
                ... 13 more

Der Grund für diesen Fehler ist, dass das Betriebssystem die Verbindung stoppt. Weil das Linux-System Nicht-Root-Benutzern nicht erlaubt, den Root kleiner als 1024 zu verwenden; daher wird es zu einem Berechtigungsproblem.

Nun, die Lösungen für dieses Problem können sein:

  1. Die beste Lösung ist, den Tomcat-Server mit dem Root-Konto zu starten.
  2. Wenn Linux Portnummern kleiner als 1024 nicht zulässt, verwenden Sie einen Port größer als diese Nummer. Die Portnummer wird der URL-Anforderung hinzugefügt.

Ebenso kann bei Verwendung des openshift-Servers derselbe Fehler java.net.SocketException: Permission denied auftreten. Und der Grund könnte sein, dass entweder die Firewall oder das Antivirenprogramm es stoppt oder die von Ihnen verwendete Java-Version nicht kompatibel ist.

Die mögliche Lösung dafür kann sein:

  1. Stoppen Sie Antivirus und Firewall. Oder überprüfen Sie, ob sie den Server nicht blockieren.

  2. Verwenden Sie Java 8 oder höhere Versionen. Oder fügen Sie die folgenden VM-Argumente in Ihre Anwendung ein, um Java 7 ausführen und verbinden zu können:

    -Djava.net.preferIPv4Stack=true
    
  3. Bitte überprüfen Sie die Bibliotheken oder Pakete von Drittanbietern, wenn sie bestimmte Anforderungen haben. Einige von ihnen verursachen auch den Fehler java.net.SocketException: Permission denied.

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Java Error