2013-02-16 4 views
1

Я попытался следующий код:NetworkInterface в Linux незамеченной

NetworkInterface[] devices = JpcapCaptor.getDeviceList(); 
    JpcapCaptor jpcap = null; 
    System.out.print(devices.length); 
    for (int a=0;a<devices.length;a++) 
    { 
     try 
     { 
      jpcap = JpcapCaptor.openDevice(devices[a], 2000, true, 20); 
      jpcap.loopPacket(-1, new arp_spoofing());//for capture packet 
     } 
     catch (IOException ex) 
     { 
      Logger.getLogger(Receiver2.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

в то же code.when я работать в окнах, я получаю некоторый интерфейс, но в Linux я did'nt получить любой интерфейс .. есть 'nt синтаксическая ошибка.

+0

Что происходит, когда вы используете стандартные библиотеки Java, чтобы получить все сетевые интерфейсы ([ 'NetworkInterfaces.getNetworkInterfaces()'] (http://docs.oracle .com/javase/6/docs/api/java/net/NetworkInterface.html)? – Perception

+0

У меня такая же проблема. Не могу понять, что происходит – Krishan

ответ

0

У меня была такая же проблема, когда я бегу в Ubuntu 11.10 и NetBeans. Когда я пытаюсь запустить файл jar с помощью терминала (с разрешениями sudo), он сработал. Я думаю, проблема связана с разрешениями в Linux.

Попробуйте запустить файл .jar в терминале sudo java -jar YourJarFile.jar

0

Возможно, Linux не может обнаружить интерфейс, поэтому он не будет доступен ни для каких программ Java. Что вы получите, если вы выполните следующую команду?

sudo ifconfig 

Добавьте это к вопросу, так что легче диагностировать проблему. Там есть связанный с этим вопрос здесь, над на Unix/Linux StackExchange:

https://unix.stackexchange.com/questions/48980/cannot-get-realtek-r8168-ethernet-card-up/52451#52451

+0

, когда я запускаю эту команду, я получаю 4 устройства: eth0, eth1, lo и wlan0 –

+0

Есть ли у них назначенные IP-адреса? –

+0

@StephenC yes .. –