我在64位运行时遇到这个奇怪的异常(Windows 7终极版)不是在运行32位win7终极时。目前它在java版本1.6.0_26上运行
running server!
java.net.SocketException: select failed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at Server.main(Server.java:18)
以下是代码:
//import java.net.ServerSocket;
//import java.net.Socket;
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
System.out.println("running server!");
int nreq = 1;
try{
ServerSocket sock = new ServerSocket(7337);
for(;;){
Socket newsock = sock.accept();
System.out.println("Creating thread...");
Thread t = new ThreadHandler(newsock, nreq);
t.start();
nreq++;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
指向此位的行上引用的错误:
Socket newsock = sock.accept();
答案 0 :(得分:1)
您肯定会遇到Windows 7以及已安装的Java SDK版本的问题。从oracle网站下载并安装最新版本的Java SDK 7。看看是否有帮助。
答案 1 :(得分:0)
当JVM和操作系统不匹配时,可能会发生这些问题。一个运行32位,另一个运行64位。
答案 2 :(得分:0)
我不认为问题是Java 32位与64位。
问题可能是Windows 32位与Windows 64位,但是:
ALSO:
1)请尝试使用此JVM选项运行:
2)请确保您已安装 64位版本的Java