内部文件我有abc.jar
一个jar文件具有一定的代码来创建一个名为同一个JAR文件的临时文件夹内的文件。
像创建罐子文件夹
createFile()
现在我想包括abc.jar到我的其他Web项目。哪个应该调用这个函数createFile()并相应地创建文件。
那么,有没有方法来创建JAR文件中的文件。
我知道关于罐子它总是被压缩和只读。
但仍然有相同的工作,对我来说会很有帮助。
:)
内部文件我有abc.jar
一个jar文件具有一定的代码来创建一个名为同一个JAR文件的临时文件夹内的文件。
像创建罐子文件夹
createFile()
现在我想包括abc.jar到我的其他Web项目。哪个应该调用这个函数createFile()并相应地创建文件。
那么,有没有方法来创建JAR文件中的文件。
我知道关于罐子它总是被压缩和只读。
但仍然有相同的工作,对我来说会很有帮助。
:)
您可以提取完整的罐,将文件添加到压缩的目录结构并重新创建罐子出来的目录结构。
您可以使用ZipInputStream和ZipOutputStream例如,以实现这一目标。此外,与ZipFile和ZipEntry有关的课程可以提供帮助。
直接添加一个文件是不可能的,因为据我所知。
对于阅读一个文件,是在,您可以使用ClassLoader.getResource()
,但我不认为Java提供了一种添加文件到JAR(出于安全目的)类似的设施。
一个JAR文件仅仅是一个zip文件,所以如果你真的需要,您可以将其未压缩到一个临时目录,添加文件,然后重新创建一个有新文件的罐子。不过,我认为这不会达到你要寻找的效果 - 你添加任何文件到jar文件以这种方式将不会提供给你的运行代码,因为原来的罐子(没有添加的文件)已经加载。
jar文件是一个zip文件,而不是tar文件。其内容具有指定的格式。详情请参阅http://en.wikipedia.org/wiki/JAR_(file_format)。 WAR,EAR和Apache AAR和MAR文件也是ZIP文件,具有自己的刻板格式。 –
好点!编辑我的话 – Tom
看看TrueVFS:http://truevfs.java.net/(或其前身TrueZip http://truezip.java.net/)。它提供了对档案文件的虚拟文件系统访问。
什么应用程序的功能是你要提供应用程序的用户? –