我正在制作一个 Webstart 应用程序,我需要在其中检索一些放在 jar 文件夹中的文件。我需要将包含内容的整个文件夹复制到本地驱动器。我该怎么做?似乎 Webstart 只批准输入流从 jar 中读取。因此,必须以某种方式将文件夹读取为输入流。
谢谢!
我正在制作一个 Webstart 应用程序,我需要在其中检索一些放在 jar 文件夹中的文件。我需要将包含内容的整个文件夹复制到本地驱动器。我该怎么做?似乎 Webstart 只批准输入流从 jar 中读取。因此,必须以某种方式将文件夹读取为输入流。
谢谢!
如嵌入资源的信息中所述,您可以使用为每个文件获取一个。这个简单的示例将图像缓存在; 这个更详细的示例在. 两者都从JAR 文件中命名的文件夹中读取。getResource()
URL
getImage()
RCImage
images
使用 zipentry Zipinputstream 和 FileOutPutStream 解决了它。
注意:这仅在您在 Eclipse JVM 之外运行时才有效(例如在我的情况下运行 Java Webstart)。
CodeSource src = MAINCLASS.class.getProtectionDomain().getCodeSource();
if (src != null) {
URL jar = src.getLocation();
ZipInputStream zip = new ZipInputStream(jar.openStream());
ZipEntry e = null;
while ((e = zip.getNextEntry()) != null) {
System.out.println("Entry name: " + e.getName());
if (e.getName().endsWith(".db")) {
FileOutputStream outPutFile = new FileOutputStream(folderDest + File.separator
+ e.getName().substring(e.getName().indexOf("INSERT-CHAR-WHERE-TO-BEGIN-RETRIVE-FILE -NAME")));
int data = 0;
while ((data = zip.read()) != -1) {
outPutFile.write(data);
}
outPutFile.close();
}
}
zip.close();
} else {
Log.error("Can't retrive running jar.");
}