![](/img/trans.png)
[英]java.net.MalformedURLException: unknown protocol: classpath
[英]java.net.MalformedURLException: unknown protocol: f
我试图使用此代码获取图像的直方图显示图像数据的直方图 。 通常它在url给出的输入图像时工作正常。 但是我从本地目录中提供图像
private BufferedImage getImage() {
try {
return ImageIO.read(new URL(
"F:/test.jpg"));
} catch (IOException e) {
e.printStackTrace(System.err);
}
return null;
}
它给出了例外,
java.net.MalformedURLException: unknown protocol: f
如何解决此异常并获取图像的直方图
F:/test.jpg
不是有效的URL。 对于文件,URL为file://F:/test.jpg
其中file
是协议
该协议无效。
如果需要从文件系统加载文件,则需要使用文件URI方案
文件URI采用
file://host/path
其中
host
是可以访问路径的系统的完全限定域名,path是表单directory/directory/.../name
的分层目录路径。 如果省略host
,则将其视为“localhost
”,即从中解释URL的机器。
所以网址应该是:
file://F:/test.jpg
虽然其他答案将在技术上解决您的问题,但您不应该使用此URL
。 read
函数有其他签名, 一个采用File
,另一个采用InputStream
,因此您可以使用以下任一方法:
return ImageIO.read(new File("F:/test.jpg"));
// or
return ImageIO.read(new FileInputStream("F:/test.jpg"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.