首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么Java的URL类不能识别某些协议?

为什么Java的URL类不能识别某些协议?
EN

Stack Overflow用户
提问于 2010-03-09 11:49:50
回答 4查看 21.6K关注 0票数 33
代码语言:javascript
代码运行次数:0
运行
复制
URL u=new URL("telnet://route-server.exodus.net");

下面的代码行正在生成:

代码语言:javascript
代码运行次数:0
运行
复制
java.net.MalformedURLException: unknown protocol: telnet

我还遇到了其他以"news://“开头的URL的类似问题。

这些URL是从ODP中提取出来的,所以我不明白为什么会出现这样的异常。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-09 11:57:10

问题

Java抛出一个MalformedURLException,因为它找不到该协议的URLStreamHandler。有关详细信息,请查看构造函数的javadocs

摘要

由于URL类有一个openConnection方法,因此该类进行检查以确保Java知道如何打开正确协议的连接。如果没有该协议的URLStreamHandler,当您尝试调用openConnection时,Java将拒绝创建URL以避免失败。

解决方案

如果您不打算在Java语言中打开这些协议的连接,那么您可能应该使用URI类。

票数 52
EN

Stack Overflow用户

发布于 2010-03-09 12:01:11

听起来您的应用程序中没有注册"telnet“协议的处理程序。由于URL类可用于打开指向URL的InputStream,因此如果要允许您使用它创建对象,则需要为协议注册一个处理程序来完成这项工作。

有关如何添加处理程序的详细信息,请参阅:http://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandlerFactory.html

票数 3
EN

Stack Overflow用户

发布于 2010-03-09 12:02:21

之所以会出现这个错误,是因为java没有用于远程登录的标准protocol handler

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2406518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档