gpt4 book ai didi

java - 如何从 jar 文件中提取 zip 文件

转载 作者:行者123 更新时间:2023-11-29 09:15:53 25 4
gpt4 key购买 nike

我的项目中有一个 zip 文件。当我通过 IDE 运行我的代码时,我的 extract(String file, String destination) 方法工作正常。

 D:/Tools/JAVA/Lodable_Creation/build/classes/ib2.zip-->
String s1=getClass().getResource("Test.zip").getPath().toString();
extract(s1, "c:\\");

这是给我路径 s1 is--> D:\Tools\JAVA\Lodable_Creation\build

当我编译相同的代码并通过命令提示符运行时

file:/D:/Tools/JAVA/Lodable_Creation/dist/Lodable_Creation.jar!/Test.zip
s1 is-->D:\Tools\JAVA\Lodable_Creation\dist

而且我没有得到输出。请帮助我。

更新:-

public static void extract(String file, String destination) throws IOException {
ZipInputStream in = null;
OutputStream out = null;
try {
// Open the ZIP file
in = new ZipInputStream(new FileInputStream(file));
// Get the first entry
ZipEntry entry = null;
while ((entry = in.getNextEntry()) != null) {
String outFilename = entry.getName();
// Open the output file
if (entry.isDirectory()) {
new File(destination, outFilename).mkdirs();
} else {
out = new FileOutputStream(new File(destination,outFilename));
// Transfer bytes from the ZIP file to the output file
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
}
}
} finally {
// Close the stream
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}

确定点击按钮

Map map = System.getenv();
Set keys = map.keySet();
String newString = (String) map.get("CYGWIN_HOME");
System.out.println(" " + newString);
String destination= newString.replace(";", "");
System.out.println(" " + destination);
String S =getClass().getResource("Test.zip").getPath().toString();
File jarFile = new File(S);
String file=jarFile.toString();
extract(file,destination);

这是我在 OK 按钮 上提取方法的实际代码。这是将 Test.zip 文件提取到目标文件夹。即 CYGWIN_HOME

最佳答案

如果您的文件路径实际上是一个 URL(以 "file://" 开头),则使用 new ZipInputStream((new URL(file)).openStream()) 否则使用 new ZipInputStream(new FileInputStream(file)) 就像你已经做的那样。

关于java - 如何从 jar 文件中提取 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com