why does java's URL class not recognize certai

2019-01-14 20:19发布

URL u=new URL("telnet://route-server.exodus.net");

This line is generating :

java.net.MalformedURLException: unknown protocol: telnet

And i encounter similar problems with other URLs that begin with "news://"

These are URLs extracted from ODP , so i dont understand why such exceptions arise..

4条回答
Evening l夕情丶
2楼-- · 2019-01-14 20:56

The simple answer is that it only does recognize certain protocols, and the remainder of the infinity of protocols is not recognized.

查看更多
聊天终结者
3楼-- · 2019-01-14 20:59

You're getting that error because java doesn't have a standard protocol handler for telnet.

查看更多
萌系小妹纸
4楼-- · 2019-01-14 21:07

Issue

Java throws a MalformedURLException because it couldn't find a URLStreamHandler for that protocol. Check the javadocs of the constructors for the details.

Summary:

Since the URL class has an openConnection method, the URL class checks to make sure that Java knows how to open a connection of the correct protocol. Without a URLStreamHandler for that protocol, Java refuses to create a URL to save you from failure when you try to call openConnection.

Solution

You should probably be using the URI class if you don't plan on opening a connection of those protocols in Java.

查看更多
Rolldiameter
5楼-- · 2019-01-14 21:16

Sounds like there's no registered handler for the protocol "telnet" in your application. Since the URL class can be used to open a InputStream to URL it needs to have a registered handler for the protocol to do this work if you're to be allowed to create an object using it.

For details on how to add handlers see: http://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandlerFactory.html

查看更多
登录 后发表回答