2016-02-29 65 views
1

我嘗試在我的linux服務器上安裝java HTTP API。我嘗試從命令pompt執行此命令來運行服務:線程「主」異常java.net.BindException:地址已在使用

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 

然後,我有這樣的錯誤:

Exception in thread "main" java.net.BindException: Address already in use at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:463) at 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) at 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

出了什麼問題?我該如何解決它?

回答

1

看起來像是正在發生的事情是,如果您更改端口號,您的問題應該消失,已經在端口8080上運行。

+0

我以爲你說了什麼,但我對此沒有太多瞭解。我怎樣才能將其更改爲不同的端口? – Stewie

+0

在這一行中'InetSocketAddress addr = new InetSocketAddress(「localhost」,8080);'這是你將端口設置爲8080的地方,將這個數字改爲9090.當你訪問它時,值得注意的是你必須輸入localhost:9090在你的地址欄 –

+0

我可以做到這一點,但我應該執行其他交易?爲9090創建端口? – Stewie

相關問題