2010-08-23 38 views
0

所以,我有一個jar文件,在這個jar文件中有另一個config.js文件,並且在這個文件中我想寫。我有一個這個文件的資源類(org.springframework.core.io.Resource),所以我可以從這個資源獲得完整的URL或getFile()。 URL看起來是這樣的:更改jar文件中的文件

jar:file:/Users/admin/.m2/repository/code/1.1-SNAPSHOT/code-1.1-SNAPSHOT.jar!/META-INF/config.js 

的porblem是,如果我嘗試的GetFile()從資源我得到一個異常:不能被解析爲絕對文件路徑,因爲它不存在於文件系統。 那麼我怎麼寫這個文件在罐子裏?:)

回答

1

你可以在你的罐子上使用ZipStreams,從那裏你可以處理你的罐子。 直接處理您的罐子,最好的辦法是使用ZipFile甚至更​​好JarFile

+0

嗯,比我應該先創建一個jar文件文件:/Users/admin/.m2/repository/code/1.1-SNAPSHOT/code- 1.1-SNAPSHOT.jar,然後從這個jar文件獲取實體/META-INF/config.js,對吧? – 2010-08-23 19:45:43

+0

你不需要創建任何東西,你用'new JarFile(pathToJar)'打開jar,然後'getEntry(yourFile)'。 – 2010-08-23 19:49:19

+0

而且,我能用這個條目做什麼?我怎麼寫它? – 2010-08-23 19:52:12

0

使用api在java.util.zipjava.util.jar
如果我沒有記錯,你可以修改文件「inline」並保存,或者只是在外面修改它,保存到一個臨時文件,然後將臨時文件推回到jar中。