您的位置:首页 > 其它

unable to start the monitor on 4454 ,an other instance is problaly using the same port

2015-05-29 16:03 926 查看
在打开idea studio后,再打开android studio,或者反过来,打开项目的时候就会报:unable to start the monitor on 4454 ,an other instance is problaly using the same port 这个错误。
经过一番苦苦查找,原来是由于Log4JPlugin造成的,启用这个插件会打开本机的4454进行socket通讯。
在log4Jplugin.jar中有一个LogServer类,代码如下:


package com.webspherious;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.net.ServerSocketFactory;

public class LogServer
{
private static final int PORT_NUM = 4454;
private static ServerSocket serverSocket;

public static void main(String[] args)
{
serverSocket = createServerSocket();
listenAndPrintLogMessages();
}

private static void listenAndPrintLogMessages()
{
for (;;)
{
Socket socket = null;
try
{
System.out.println(" >> Server waiting for log messages...");
socket = serverSocket.accept();

InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
if (socket != null) {
try
{
socket.close();
}
catch (IOException ignored) {}
}
}
catch (Exception e) {}finally
{
if (socket != null) {
try
{
socket.close();
}
catch (IOException ignored) {}
}
}
}
}

private static ServerSocket createServerSocket()
{
ServerSocketFactory serverSocketFactory = ServerSocketFactory.getDefault();
try
{
serverSocket = serverSocketFactory.createServerSocket(4454);
}
catch (IOException ioEx)
{
System.err.println("Unable to create server");
ioEx.printStackTrace();
System.exit(-1);
}
return serverSocket;
}
}


由此有以下解决办法:
1、禁用该插件。
2、一个默认,另外一个改成其他未被占用的端口,修改端口后,要修改与之相关的配置文件中的端口配置信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: