почему URL Java классифицирует не, распознают определенные протоколы?

URL u=new URL ("telnet://направляют-server.exodus.net");

Эта строка генерирует:

java.net. MalformedURLException: неизвестный протокол: telnet

И я встречаюсь с подобными проблемами с другими URL, которые начинаются "news://"

Это URL, извлеченные из ODP, таким образом, я не понимаю, почему такие исключения возникают..

27
задан trinity 9 March 2010 в 03:49
поделиться

4 ответа

Проблема

Java выдает исключение MalformedURLException , потому что не может найти URLStreamHandler для этого протокола. За подробностями обращайтесь к javadocs конструкторов.

Резюме:

Поскольку класс URL имеет метод openConnection , класс URL проверяет, знает ли Java, как открыть соединение с правильным протоколом. Без URLStreamHandler для этого протокола Java отказывается создавать URL , чтобы спасти вас от сбоя при попытке вызвать openConnection .

Решение

Вам, вероятно, следует использовать класс URI , если вы не планируете открывать соединение этих протоколов в Java.

44
ответ дан 28 November 2019 в 05:01
поделиться

Похоже, в вашем приложении нет зарегистрированного обработчика протокола "telnet". Поскольку класс URL-адреса может использоваться для открытия InputStream для URL-адреса, он должен иметь зарегистрированный обработчик для протокола для выполнения этой работы, если вам разрешено создавать объект с его помощью.

Подробнее о том, как добавлять обработчики, см .: http://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandlerFactory.html

4
ответ дан 28 November 2019 в 05:01
поделиться

Вы получаете эту ошибку, потому что Java не имеет стандартного обработчика протокола для telnet.

3
ответ дан 28 November 2019 в 05:01
поделиться

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

3
ответ дан 28 November 2019 в 05:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: