Java:如何将文件夹从一个jar复制到另一个jar?
解决了,请看下面我的帖子 我想使用java将文件从一个.jar复制到另一个.jar。但并非所有jar文件都应复制。我只想复制一个特定的文件夹,其中也可以包含子文件夹。我已经有了将文件从一个jar复制到另一个jar的代码:Java:如何将文件夹从一个jar复制到另一个jar?,java,jar,copy,Java,Jar,Copy,解决了,请看下面我的帖子 我想使用java将文件从一个.jar复制到另一个.jar。但并非所有jar文件都应复制。我只想复制一个特定的文件夹,其中也可以包含子文件夹。我已经有了将文件从一个jar复制到另一个jar的代码: public static void copyFiles(final File file) throws IOException { final JarFile targetJar = new JarFile(file); final JarOutputStr
public static void copyFiles(final File file) throws IOException {
final JarFile targetJar = new JarFile(file);
final JarOutputStream output = new JarOutputStream(new FileOutputStream(file));
final JarFile localJar = new JarFile(new File(JarEditor.class.getProtectionDomain().getCodeSource().getLocation().getFile()));
// WRAPPER_CONTENT is a String[] which contains all names of the files i want to copy
for (final String entryName : StringResource.WRAPPER_CONTENT) {
final JarEntry entryToCopy = localJar.getJarEntry(entryName);
final JarEntry targetEntry = new JarEntry(entryName);
output.putNextEntry(targetEntry);
final InputStream input = localJar.getInputStream(entryToCopy);
final byte[] buffer = new byte[10240];
int readByte = 0;
while ((readByte = input.read(buffer)) >= 0) {
output.write(buffer, 0, readByte);
}
}
output.flush();
output.close();
localJar.close();
targetJar.close();
}
目前,我正在通过硬编码的文件名列表复制这些文件。但我更喜欢一种更灵活的方式,这样我就可以从我的jar中添加和删除资源,而且仍然可以工作。它们在jar中都有相同的父文件夹。那么,我如何浏览那个文件夹,只复制那个些文件呢
同样值得一提的是,所有需要复制的文件都位于我的运行时所来自的JAR文件中,您可能是通过查看我的代码而获得的
谢谢你的帮助巴斯奇迪,我想是运气不好吧。我已经搜索解决方案一段时间了,就在我创建这个线程时,我设法找到了解决方案。我只需检查jarentry的名称是否以要复制的文件夹的名称开头。如果是这样,我将使用与上面相同的方法将jarentry复制到另一个jar。解决