0

我正在制作一个 Webstart 应用程序,我需要在其中检索一些放在 jar 文件夹中的文件。我需要将包含内容的整个文件夹复制到本地驱动器。我该怎么做?似乎 Webstart 只批准输入流从 jar 中读取。因此,必须以某种方式将文件夹读取为输入流。

谢谢!

4

2 回答 2

2

信息中所述,您可以使用为每个文件获取一个。这个简单的示例将图像缓存在; 这个更详细的示例在. 两者都从JAR 文件中命名的文件夹中读取。getResource()URLgetImage()RCImageimages

于 2013-11-05T18:47:23.523 回答
1

使用 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.");
                }
于 2013-11-06T09:12:34.960 回答