有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

文件Java URL:未知协议“C”

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

我正在使用iText库从Swing应用程序内部生成PDF。iText的Jpeg类需要在其构造函数中使用^{}来定位要添加到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());
}

请注意:URL确实正确地转义了字符串(因此“\”被转换为“\\”,等等)

提前谢谢


共 (5) 个答案

  1. # 1 楼答案

    搜索文件及其目录,并添加要分配给ImageView的图像

    File file = new File("F:/a.jpg");
    Image image = new Image(arquivo.toURI().toString()); //here is magic happens
    imageView.setImage(image);
    
  2. # 2 楼答案

    试试看

    String imageUrl = "file:///C:/Users/MyUser/image.jpg";
    
  3. # 3 楼答案

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

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

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

  4. # 4 楼答案

    在我的例子中,问题是我的文件名中有“%”。一旦我更改了它,文件就被成功加载了。所以我猜文件名中不允许使用特殊字符,至少在windows中是这样

  5. # 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());
    }