Java URL:未知协议"C"

IAm*_*aja 22 java url file

我知道在SO上有类似的问题(就像这个一样),然而,在阅读了"具有相似标题的问题"列表之后,我仍然强烈地感到这是独一无二的.

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

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

是否有任何黑客/规避,或者我必须在某个地方托管这个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());
}
Run Code Online (Sandbox Code Playgroud)

请注意:URL不正确转义字符串(因此"\"转换为"\ \",等等).

提前致谢!

And*_*ndy 77

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

String imageUrl = "file:///C:/Users/MyUser/image.jpg";
Run Code Online (Sandbox Code Playgroud)

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

  • +1是解释*为什么*OP的版本不正确的唯一答案. (7认同)
  • 是的谢谢你.我喜欢学习,所以当其他用户只想惩罚你而不是帮助你时,它会令人沮丧.再次感谢. (5认同)

ada*_*shr 10

试试吧

String imageUrl = "file:///C:/Users/MyUser/image.jpg";
Run Code Online (Sandbox Code Playgroud)


kor*_*fey 5

尝试这个

try {
    String imageUrl = "file:///C:/Users/MyUser/image.jpg";
    Jpeg image = new Jpeg(new URL(imageUrl));
} catch(Exception exc) {
    System.out.println(exc.getMessage());
}
Run Code Online (Sandbox Code Playgroud)