解決した

スレッド "main"の例外java.net.BindException:すでに使用中のアドレス

サーバー

私は自分のLinuxサーバーにJava HTTP APIをインストールしようとします。 私は、コマンドpomptからこのコマンドを実行して、サービスを実行しようとします:

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)at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)at sun .net.httpserver.ServerImpl。(ServerImpl.java:100)。sun.net.httpserver.HttpServerImpl。(HttpServerImpl.java:50)at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)at com。 sun.net.httpserver.HttpServer.create(HttpServer.java:129)at 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

なにが問題ですか? どうすれば修正できますか?


Progress 100%

一番いい

回答

サーバー

何が起きているかは、問題がなくなるはずのポート番号を変更すると、すでに何かがポート8080で実行されていることです。