2010-08-23 98 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中。