web-dev-qa-db-ja.com

Java URL:不明なプロトコル "C"

SO( this oneのような)で、これにsimilarの質問があることは知っていますが、読んだ後「似たようなタイトルの質問」のリストですが、これはユニークだと強く感じています。

iText ライブラリを使用して、Swingアプリケーション内からPDFを生成しています。 iTextのJpegクラスは、PDFファイルに追加する画像/ jpgを見つけるために、コンストラクタに URL が必要です。

このURLをJPGファイルの絶対ファイルパスに設定すると、MalformedURLExceptionが要求されます不明なプロトコル:c( "c"はC:\ローカルディスク上のドライブ)。

これに対するハック/回避策はありますか、またはこのJPGをどこかでホストしてhaveしてネット上で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は文字列を適切にエスケープします(したがって、「\」は「\ \」に変換されます)。

前もって感謝します!

24
IAmYourFaja

次のように、image.jpgファイルへのパスを file:// URL に変換する必要があります。

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

それ以外の場合は、CをURLプロトコルとして解釈します。

82
Andy

で試す

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

これを試して

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

ディレクトリでファイルを検索し、ImageViewに割り当てる画像を追加する

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