Java com.sun.net.httpserver错误,这是什么意思?

Java com.sun.net.httpserver错误,这是什么意思?,java,permission-denied,httpserver,socketexception,Java,Permission Denied,Httpserver,Socketexception,我的代码如下所示: import com.sun.net.httpserver.*; import java.net.InetSocketAddress; ... void Srart_Server() { .... InetSocketAddress addr=new InetSocketAddress(80); HttpServer server=HttpServer.create(addr,0); //

我的代码如下所示:

    import com.sun.net.httpserver.*;
    import java.net.InetSocketAddress;
    ...

    void Srart_Server()
    {
      ....
      InetSocketAddress addr=new InetSocketAddress(80);
      HttpServer server=HttpServer.create(addr,0);      // Line : 32
它在我的电脑上运行正常,但在我将应用程序复制到Linux并运行后,出现以下错误:

java.net.SocketException: Permission denied
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at sun.net.httpserver.ServerImpl.<init>(ServerImpl.java:100)
        at sun.net.httpserver.HttpServerImpl.<init>(HttpServerImpl.java:50)
        at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
        at com.sun.net.httpserver.HttpServer.create(HttpServer.java:130)
        at Http_Server.Srart_Server(Http_Server.java:32)
java.net.SocketException:权限被拒绝
位于sun.nio.ch.Net.bind0(本机方法)
位于sun.nio.ch.Net.bind(Net.java:433)
位于sun.nio.ch.Net.bind(Net.java:425)
位于sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
位于sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
位于sun.net.httpserver.ServerImpl.(ServerImpl.java:100)
位于sun.net.httpserver.HttpServerImpl.(HttpServerImpl.java:50)
位于sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
位于com.sun.net.httpserver.httpserver.create(httpserver.java:130)
在Http_Server.Srart_服务器上(Http_Server.java:32)

为什么??如何修复此问题?

远程计算机上的防火墙(linux)不允许java代码打开端口。这需要根据linux发行版和防火墙(+网络设置)进行修复


作为一种可能的修复方法,您可以尝试打开端口8080。某些unix计算机将为根用户保留1024以下的所有端口。

远程计算机上的防火墙(linux)不允许java代码打开端口。这需要根据linux发行版和防火墙(+网络设置)进行修复


作为一种可能的修复方法,您可以尝试打开端口8080。某些unix计算机将为根用户保留1024以下的所有端口。

很可能您试图启动服务器的端口已被占用。尝试使用不太流行的端口-8080或8888。在这种情况下,错误消息将显示:“地址已在使用中”。很可能您尝试启动服务器的端口已被占用。尝试使用不太流行的端口-8080或8888,在这种情况下,错误消息将显示:“地址已在使用中”。