Java занимает много времени, прежде чем что-либо запускать, если время подключения к сети истекло

Интересно, почему для запуска любой программы Java должна использовать сеть. Поскольку мое подключение к беспроводной сети колледжа действительно отстой, я постоянно отключаюсь, но без какого-либо уведомления от точки доступа. Таким образом, я больше не могу получить доступ к сети, но операционная система все еще видит, что соединение установлено. (В моем случае я использую netctl в Arch Linux.)

В результате Java будет ждать 20 секунд, прежде чем запускать какой-либо код из метода main().

Эта проблема не появляется, если соединение не работает (с точки зрения сетевых утилит).

Знаете ли вы, почему Java это делает, и как это предотвратить?

Отредактируйте, поскольку это не кажется ясным:

Как воспроизвести ошибку:

  1. Используйте сломанный шлюз, такой как 240.0.0.1
  2. Напишите программу на Java с пустым методом main().
  3. Компиляция (javac)
  4. Запустите программу

Последний шаг занимает более 20 секунд.

Я хотел бы, чтобы вы объяснили не то, почему у меня проблемы с сетью, а то, что влияет на Java?

1 ответ

Проблема действительно была связана с библиотеками, так как пустой путь к классам решает проблему.

Обновление: как вы знаете, библиотека не была в сети, но делала запросы в сеть. Эта библиотека была JR.

Другие вопросы по тегам