2012-11-17 12 views
5

私はこの奇妙な例外を64ビット(Windows 7の究極のもの)で実行しているときにのみ得ます。現在、Javaのバージョンここ1.6.0_26Javaサーバーは32ビットで動作しますが、64ビットでは動作しません。どうして?

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

「IOエラーjava.net.SocketExceptionがが発生する可能性がありますどのような[の可能性重複の64ビットバージョンをインストールしていることを確認してください。選択失敗 "?](http://stackoverflow.com/questions/11926655/what-c​​an-cause-io-error-java-net-socketexception-select-failed) – assylias

+0

質問には満足のいく回答はありませんでした。ファイアウォールの問題や管理者権限の問題ではありませんでした – iForgotMyLogin

+0

私はここに新しい人物であることに気付きませんでしたが、この事実は絶望感を伝えてくれるはずです – iForgotMyLogin

答えて

0

これらの問題が発生する可能性がありますJVMとOSの間に不一致がある場合。 1つは32ビットを実行し、もう1つは64ビットを実行します。

+1

一般に、64ビットOS上で実行されている32ビットJREを使用してJavaプログラムを実行できるはずです。そして、一般的には、32ビットOS上の64ビットJVMを起動することすらできません(ネットワークエラーが発生するまでにはずっと待つべきです)。しかし、はい、私は64ビットOS上で64ビットJREを実行することをお勧めします。 – paulsm4

+0

@ paulsm4この説明をいただきありがとうございます。 –

+0

現在Java版で稼働しています 1.6.0_26他にも試してみます – iForgotMyLogin

1

Windows 7とインストールしたJava SDKのバージョンに問題がある可能性があります。 oracle WebサイトからJava SDK 7の最新バージョンをダウンロードしてインストールします。それが役立つかどうかを見てください。

0

私はではないは、問題がJava 32ビットと64ビットであると考えています。

問題 Windowsの64ビット、しかし対Windowsの32ビットすることができます

ALSO:

1)このJVMで実行してみてくださいオプション:

  • -D java.net.preferIPv4Stack =真

2)は、Java

+0

パスワードを忘れた古いアカウントです。私はこれをまだ解決できない(または同じ問題がある)誰も見たことがありません。前に試したことの1つは、javaのバージョンを別のバージョンにダウングレードすることでした。それは同じ問題を抱えていた – iForgotMyLogin

関連する問題