Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > NetworkInterface


Автор: GZep 7.10.2007, 20:21
Не запускается приложение... (ошибка - can not find symbol на каждом методе getInetAddresses...)
Вот код:
Код

import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;

public class ListNetsEx
{
    public static void main(String args[]) throws SocketException {
        Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
        for (NetworkInterface netint : Collections.list(nets))
            displayInterfaceInformation(netint);
    }

    static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
        out.printf("Display name: %s\n", netint.getDisplayName());
        out.printf("Name: %s\n", netint.getName());
        Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();

        for (InetAddress inetAddress : Collections.list(inetAddresses)) {
            out.printf("InetAddress: %s\n", inetAddress);
        }

        out.printf("Up? %s\n", netint.isUp());
        out.printf("Loopback? %s\n", netint.isLoopback());
        out.printf("PointToPoint? %s\n", netint.isPointToPoint());
        out.printf("Supports multicast? %s\n", netint.supportsMulticast());
        out.printf("Virtual? %s\n", netint.isVirtual());
        out.printf("Hardware address: %s\n",
                    Arrays.toString(netint.getHardwareAddress()));
        out.printf("MTU: %s\n", netint.getMTU());

        out.printf("\n");

     }
}

Возможна проблема в http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6427257.

Автор: LSD 7.10.2007, 22:09
can not find symbol - это ошибка времени компиляции, а не выполнения и этот баг тут не при чем.

Если убрать:
Код

out.printf("Up? %s\n", netint.isUp());
out.printf("Loopback? %s\n", netint.isLoopback());
out.printf("PointToPoint? %s\n", netint.isPointToPoint());
out.printf("Supports multicast? %s\n", netint.supportsMulticast());
out.printf("Virtual? %s\n", netint.isVirtual());
out.printf("Hardware address: %s\n", Arrays.toString(netint.getHardwareAddress()));
out.printf("MTU: %s\n", netint.getMTU());

(у меня под рукой только JDK 1.5), то все прекрастно запускается и работает.

Автор: GZep 8.10.2007, 16:46
хм... щас заработало, только вот getDisplayName() выводит каракули, видимо кодировака винды шалит...

а в этом примере почему-то обращение к классу не работало.... видимо, что-то не так с throws сделал...

Автор: SergeyReznick 9.10.2007, 11:42
Цитата(GZep @ 7.10.2007,  20:21)
Возможна проблема в http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6427257.

Связи с приведенным багом на даный момент не вижу.


У меня проблема не воспроизводится.

А какая версия VM ?

И можно ли взглянуть на то, что вывелось в консоль ?

Автор: GZep 9.10.2007, 16:13
Цитата(SergeyReznick @  9.10.2007,  11:42 Найти цитируемый пост)
взглянуть на то, что вывелось в консоль ?

типо на все методы: cannot find symbol
Цитата(SergeyReznick @  9.10.2007,  11:42 Найти цитируемый пост)
А какая версия VM ?

все самое последнее

Добавлено через 24 секунды
З.Ы. специально обновлял, думал из-за этого не работает...

Автор: SergeyReznick 10.10.2007, 09:02
Ну во-первых, если это ошибка компиляции, то лучше было бы сказать "не компилируется".
А то я уж думал, что исключение бросается во время исполнения.

А если во время компиляции, то это значит, что какие-то настройки не в порядке.
Я так понял, что ты работаешь в каком-нибудь IDE. Попробуй откомпилировать в командной строке.
Если откомпилируется, ищи проблему в IDE.

Автор: GZep 10.10.2007, 19:00
хм... взял другой пример - все заработало. smile 

Цитата(SergeyReznick @  10.10.2007,  09:02 Найти цитируемый пост)
ты работаешь в каком-нибудь IDE

ага, блокнот называется smile 

Автор: GZep 9.11.2007, 22:41
sorry, что поднимаю относительно старую тему, но все раотает, кроме метода http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#isUp() и getHardwareAddress. Компилирую в командной строке, version 1.6, win XP sp 2.
Вот код:
Код

        try {
            Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
            for (NetworkInterface netint : Collections.list(nets)) {
                addRow(
                    new Object[] {
                        //netint.isUp(),//error
                        //netint.getHardwareAddress(),//error
                        netint.getName(),//Ok
                        netint.getDisplayName()//Ok
                    }
                );
            }
        } catch (SocketException e) {
            System.out.println(e);
        }

в чем может быть проблема?

Автор: GZep 10.11.2007, 23:45
фуф, нашел проблему... у была установлена новая версия компилятора, а компелировал все-равно старой. Вот блин попадаюсь на мелочах - забыл после установки путь в batch файле подправить... smile 

Вопрос отпадает, предыдущий код исправен!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)