2016-09-16 10 views
0

MANIFEST.MFファイルをfile.war内から読み込もうとしています。このファイルはMETA-INFフォルダ内にあります。 私はこのコードを持っていますが、nullポインタの例外が発生しています。助言してください?ありがとうございました!javaを使用してurlから.warファイル内のmanifest.mfを読み取る

String warurl = "http://.../file.war"; 

try{ 
URL url = new URL(warurl); 
InputStream inputStream = url.openStream().getClass().getResourceAsStream("META-INF/MANIFEST.MF"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 

}catch(Exception e){ 
System.out.println("Error reading manifest file."); 
} 

答えて

1

あなたはURLのInputStreamのクラスローダからリソースを取得しようとしている:openStream().getClass() - それはへのURLのポイントというwarファイルからそれを取得することと同じではありません。

JarURLConnectionを使用してください。この標準APIクラスのJavadocのからの例:

URL url = new URL("jar:file:/home/duke/duke.jar!/"); 
JarURLConnection jarConnection = (JarURLConnection)url.openConnection(); 
Manifest manifest = jarConnection.getManifest(); 

これはまた、あなたのマニフェストからデータを取得するための便利なManifestオブジェクトを提供します。

+0

こんにちはアーウィン、私の.warファイルにもJarURLConnectionを使用できますか?ありがとう! – ashlrem

+0

@ashlremはいwarファイルはjarファイルです。ちょうど異なる拡張子ですが、同じものです。実際には両方ともzipファイルなので、zipファイルから読み込んだクラスも使用できます。 –

+0

大丈夫です。私は 'URL(jar:file:/.../../ file.jar);を使用しようとしましたが、' java.io.FileNotFoundException'を取得しています。 – ashlrem

関連する問題