【问题标题】:Exception in thread "main" java.net.BindException: Address already in use线程“主”java.net.BindException 中的异常:地址已在使用中
【发布时间】:2016-06-13 05:23:44
【问题描述】:

我尝试在我的 linux 服务器上安装 java HTTP API。我尝试从命令提示符执行此命令以运行服务:

java -Dfile.encoding=UTF8 -cp .:boilerpipe-1.2.0.jar:lib/nekohtml-1.9.13.jar:lib/xerces-2.9.1.jar:lib/langdetect.jar:lib/jsonic-1.2.8.jar ExampleProgram

然后我有这个错误:

线程“main”java.net.BindException 中的异常:地址已在使用中 在 sun.nio.ch.Net.bind0(本机方法) 在 sun.nio.ch.Net.bind(Net.java:463) 在 sun.nio.ch.Net.bind(Net.java:455) 在 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:129) 在 ExampleProgram.main(ExampleProgram.java:37)

这里是 ExampleProgram.java:

import java.io.InputStream;
import java.io.FileReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.IOException;

import org.xml.sax.InputSource;

import de.l3s.boilerpipe.document.TextDocument;
import de.l3s.boilerpipe.extractors.ArticleExtractor;
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput;


// Language detect librarys
import com.cybozu.labs.langdetect.*;

import net.arnx.jsonic.JSON;
import net.arnx.jsonic.JSONException;


import java.io.*;
import java.net.*;


import java.util.concurrent.Executors;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

class ExampleProgram {

public static void main(String[] args) throws Exception {

EveryDetector evr = new EveryDetector();
InetSocketAddress addr = new InetSocketAddress("localhost",8080);
HttpServer server = HttpServer.create(addr, 0);

MyHandler hndl = new MyHandler();
hndl.setDetector(evr);

MyHandlerExtractContent hnd2 = new MyHandlerExtractContent();
hnd2.setDetector(evr);

MyHandlerDetectLanguage hnd3 = new MyHandlerDetectLanguage();
hnd3.setDetector(evr);

server.createContext("/",hndl);
server.createContext("/extractcontent",hnd2);
server.createContext("/detectlanguage",hnd3);
server.setExecutor(Executors.newCachedThreadPool());
server.start();
System.out.println("Server is listening on port 8080" );


 }
}

来源:https://github.com/remdex/boilerpipe-and-language-detect-api-server

怎么了?我该如何解决?

【问题讨论】:

    标签: java linux server command port


    【解决方案1】:

    看起来正在发生的事情是,如果您更改端口号,您的问题应该会消失。

    【讨论】:

    • 我想到了你所说的,但我对此知之甚少。如何将其更改为不同的端口?
    • 在这一行InetSocketAddress addr = new InetSocketAddress("localhost",8080); 这是您将端口设置为 8080 的地方,将该数字更改为 9090。另外值得注意的是,当您访问它时,您必须在地址栏中输入 localhost:9090
    • 我可以这样做,但我应该执行其他交易吗?为 9090 创建端口?
    • 执行其他交易是什么意思?那会是哪条线?
    • 没问题我很高兴能帮上忙
    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2014-08-11
    • 2013-09-08
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多