JAR ファイル内からリソースにアクセスする場合、開発者は多くの場合、問題に遭遇します。このような問題の 1 つは、FileReader を使用して JAR から XML ファイルを読み取ろうとしたときに発生し、「FileNotFoundException」エラーが発生します。
この特定のケースでは、開発者は XML ファイルへの URL を正しく取得しましたが、エラーが発生しました。 FileReader に渡すとき。これは、URL 取得メソッドが機能していることを示しています。ただし、問題はその後の手順にあります。
XMLReader xr = XMLReaderFactory.createXMLReader(); xr.setContentHandler( this ); xr.setErrorHandler( this ); xr.parse( new InputSource( new FileReader( filename )));
FileReader は引数としてファイル パスを必要としますが、getClass().getResource() によって取得される URL は JAR 内のリソースを指します。
この問題を解決するには、java.lang.Class.getResourceAsStream(String) メソッドを使用します。リソースの読み取りに使用できる InputStream:
URL url = getClass().getResource("/xxx/xxx/xxx/services.xml"); InputStream is = url.openStream();
InputStream は、XML パーサーの InputSource の初期化に使用できます:
xr.parse( new InputSource( is ));
開発者は getResourceAsStream を利用します。 JAR ファイルから XML リソースを正常に読み取ることができ、「FileNotFoundException」エラーが解消されます。
以上がFileReader が Java JAR からの XML の読み取りに失敗するのはなぜですか?その修正方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。