Java URL: Unknown Protocol “C”

2022-09-01 14:50:37

我知道SO上有类似的问题(比如这个),但是,在阅读了“具有相似标题的问题”列表之后,我仍然强烈地感觉到这是独一无二的。

我正在使用iText库从Swing应用程序内部生成PDF。iText 的类需要在其构造函数中使用 URL 来查找要添加到 PDF 文件的图像/jpg。Jpeg

当我将其设置为JPG文件的绝对文件路径时,我得到一个声称未知的协议:c(“c”是本地磁盘上的驱动器)。URLMalformedURLExceptionC:\

是否有任何黑客/规避,或者我是否必须在某个地方托管此JPG并通过网络找到它?下面是失败的代码:URL

try {
    String imageUrl = "C:\Users\MyUser\image.jpg";
    Jpeg image = new Jpeg(new URL(imageUrl));
} catch(Exception exc) {
    System.out.println(exc.getMessage());
}

请注意:确实可以正确转义字符串(因此“\”转换为“\ \”等)。URL

提前致谢!


答案 1

您需要将图像.jpg文件的路径转换为 file:// URL,如下所示:

String imageUrl = "file:///C:/Users/MyUser/image.jpg";

否则,它将 C 解释为 URL 协议。


答案 2

尝试

String imageUrl = "file:///C:/Users/MyUser/image.jpg";