网址u =新网址(“telnet://route-server.exodus.net”);
此行正在生成:
java.net.MalformedURLException:未知协议:telnet
我遇到与以“news://”
开头的其他网址类似的问题这些是从ODP中提取的URL,所以我不明白为什么会出现这样的例外情况。
答案 0 :(得分:44)
<强>问题强>
Java抛出MalformedURLException
因为找不到该协议的URLStreamHandler
。检查构造函数的javadocs以获取详细信息。
要点:
由于URL
类具有openConnection
方法,因此URL类会检查以确保Java知道如何打开正确协议的连接。如果没有URLStreamHandler
的协议,当您尝试拨打URL
时,Java会拒绝创建openConnection
以免您失败。
<强>解决方案强>
如果您不打算用Java打开这些协议的连接,那么您应该使用URI
类。
答案 1 :(得分:4)
听起来你的应用程序中没有协议“telnet”的注册处理程序。由于URL类可用于打开InputStream到URL,因此如果允许使用它来创建对象,则需要为协议设置注册处理程序。
有关如何添加处理程序的详细信息,请参阅:http://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandlerFactory.html
答案 2 :(得分:3)
您收到该错误,因为java没有telnet的标准protocol handler。
答案 3 :(得分:3)
简单的答案是,只有 才能识别某些协议,并且无法识别无限协议的其余部分。