2012-05-30 1 views
0

Здравствуйте, у меня возникли проблемы с кодом ниже. Попробовать и поймать блоки имеют красный крестик на Ьгу линии в моем IDE говорил мне, что «(» встречалось, а «{» было ожидаемо. Я пропускаю что-то? Что может быть моя проблема?Java 7, попробовать и уловить проблемы? Ubuntu Eclipse IDE

import java.io.IOException; 
import java.net.InetSocketAddress; 
import java.net.StandardSocketOptions; 
import java.nio.ByteBuffer; 
import java.nio.channels.AsynchronousServerSocketChannel; 
import java.nio.channels.AsynchronousSocketChannel; 
import java.util.concurrent.ExecutionException; 
import java.util.concurrent.Future; 
/** * * @author Apress */ 

public class FutureForm 
{ 
public static void main(String[] args) 
{ 
    final int DEFAULT_PORT = 5555; 
    final String IP = "127.0.0.1"; 
    // v-This parenthesis should be a bracket it says?? 
    try(AsynchronousServerSocketChannel asynchronousServerSocketChannel = AsynchronousServerSocketChannel.open()) 
    { 
     if (asynchronousServerSocketChannel.isOpen()) 
     { 
      asynchronousServerSocketChannel.bind(new InetSocketAddress(IP, DEFAULT_PORT)); 
      System.out.println("Waiting for connections ..."); 
      while (true) 
      { 
       Future<AsynchronousSocketChannel> asynchronousSocketChannelFuture = asynchronousServerSocketChannel.accept(); 
       try (AsynchronousSocketChannel asynchronousSocketChannel = asynchronousSocketChannelFuture.get()) 
       { 
        System.out.println("Incoming connection from: " + asynchronousSocketChannel.getRemoteAddress()); 
        final ByteBuffer buffer = ByteBuffer.allocateDirect(1024); 
        while (asynchronousSocketChannel.read(buffer).get() != -1) 
        { 
         buffer.flip(); 
         asynchronousSocketChannel.write(buffer).get(); 
         if (buffer.hasRemaining()) 
          buffer.compact(); 
         else 
          buffer.clear(); 
        } 
        System.out.println(asynchronousSocketChannel.getRemoteAddress() + " was successfully served!"); 
       } 
       catch (IOException || InterruptedException || ExecutionException ex) 
       { 
        System.err.println(ex); 
       } 
      } 
     } 
     else 
     { 
      System.out.println("The asynchronous server-socket channel cannot be opened!"); 
     } 
    } 
    catch (IOException ex) 
    { 
     System.err.println(ex); 
    } 
} 
} 

ответ

0

убедитесь, что вы настроили ваше рабочее пространство для Java 1.7, в настройках в Java> Компилятор: «Уровень соответствия компилятора».

Если это не так Не помогите, проверьте свойства проекта в Java Compiler, который должен либо не иметь конкретных для проекта настроек, либо иметь 1,7 настроенный.

+0

У меня есть настройки моего проекта для использования java 1.7.0 openjdk ... У меня было это с помощью Java 7, но оба они все равно дают ту же ошибку. Любые другие идеи ..? –

+1

Вы имеете в виду настройки проекта в разделе «Путь сборки Java»: «Библиотеки» или «Компилятор Java»: «Соответствие JDK»? –

+0

Hm. Я не был. Но теперь, когда я смотрю на компилятор Java, JDK-совместимость, я разрешу установить его только на 1.6, а не на 1.7. У меня нет возможности установить его в 1.7. –

5

Не уверен, если это является причиной для предупреждения, но у вас есть ошибка синтаксиса в вашем multicatch:. вы должны использовать только отдельные трубы

catch (IOException | InterruptedException | ExecutionException ex) 
+0

Упс, спасибо! Но все та же проблема. –

+0

@BumSkeeter Затем это либо проблема с конфигурацией, либо ошибка. С исправлением, которое я предложил, ваш код компилируется и работает на моем компьютере (Windows/Netbeans). – assylias

+0

Спасибо ... Думаю, я попробую найти помощника класса, чтобы помочь. Мы использовали java 6 в течение самого долгого времени, но я думаю, что не находится в java 7. Поэтому нам пришлось обновить. –

Смежные вопросы