遇到Java异常:java.net.MalformedURLException:没有协议。

6

我目前正在调用以下代码行:

java.net.URL connection_url = new java.net.URL("http://<ip address>:<port>/path");

执行时出现上述异常。有任何想法为什么会发生这种情况吗?

我用完全相同的代码没有遇到同样的异常。 - jjnguy
引发异常的Java版本是哪个? - John Meagher
5个回答

3
作为一个侧面说明,你应该使用URI,因为Java URL类出了问题。(我相信是equals方法)

不确定为什么楼上的回答被评分降低了,但根据您所做的事情,使用URI代替URL可能是个好主意。请参阅:http://www.symphonious.net/2007/03/29/javaneturl-or-javaneturi/ - Sam Merrell
如果你正在处理野外发现的URL(通常是无效的URI),那么你可能不想使用java.net.URI。 - smola

2

你的代码对我来说完全正常:

public static void main(String[] args) {
    try {
        java.net.URL connection_url = new java.net.URL("http://:/path");
        System.out.println("Instantiated new URL: " + connection_url);
    }
    catch (MalformedURLException e) {
        e.printStackTrace();
    }
}

已实例化新的URL:http://:/path

你确定这行代码正确吗?


2
那个 URL 字符串看起来好像是无效的。确定它不应该是 'http://path' 吗?或者服务器和端口留空了吗?

谢谢!这对我有用。在 IP 地址前添加协议是我漏掉的步骤。我想 Chrome 已经宠坏了我 :) - Najeeb

1

我遇到了同样的错误,以下方法解决了问题:

我几天前添加的jar文件(JFree)自动损坏,导致了这个错误。我从网络上重新下载了相同的文件,问题得到了解决。


1

我也遇到了同样的异常,但在我的情况下,我尝试执行的URL末尾有一个空格。删除空格后,它对我来说正常工作了。请检查您的情况下URL是否有任何尾随空格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接