2016-09-15 6 views
0

.jar(ant builder.xmlで作成)から.xmlファイルをロードしようとしていますが、例外があります。私のアリのbuild.xmlから.jarからxmlをロード

コード:私が得た

try { 
xml = new File(this.getClass().getResource("/TaskData.xml").getFile()); 
    } catch (Exception e) { 
     e.printStackTrace(); 

例外:

java.io.FileNotFoundException: C:\Users\agent_000\Desktop\....file:\C:\Users\agent_000\Desktop\%d1%85%d1%83\build\sample.jar!\TaskData.xml (

すると、それは見つけることができないのはなぜ私のクラスから

ant builder code

コード.xmlファイル?

ありがとうございます!

この

URL url = new URL("jar:file:/path--to-your Jar !/TaskData.xml"); 
    InputStream is = url.openStream(); 
    System.out.println(is); 

    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    System.out.println(reader.readLine()); 

またはgetResourceAsStreamを経由しての代わりに、リソースのためのInputStreamを返すようにClassLoaderを頼むように行うことができます

+0

は瓶に実際にファイルですか? (winrarなどで開きます) –

+0

@flkesは、sample.jarが作成しているmybuild.xml(これはantファイルです)に従って作成され、この.jarにはTaskData.xmlが作成されます。 –

+0

@flkes nope、同じ例外。おそらくbuild.xmlに何か間違っていますか? –

答えて

0

InputStream in = getClass().getResourceAsStream("/TaskData.txt"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
+0

お返事ありがとうございます!しかし、私は "ファイル"クラスを作成する必要があるので、私のクラスはそれを解析することができます –

+0

あなたは、ファイルtempFile = File.createTempFile(接頭辞、接尾辞); tempFile.deleteOnExit(); FileOutputStream out =新しいFileOutputStream(一時ファイル)。 IOUtils.copy(in、out); return tempFile; –

関連する問題