0

作成中のプログラムのインストーラーに取り組んでいましたが、zip ファイルを使用していますが、何らかの理由で、zip フォルダーからファイルを解凍してインストールする方法が見つかりません。誰かが私を助けることができれば、私はとても幸せです.

4

2 に答える 2

1

ファイルを解凍するには、これを試してください:

String zipName = "my.zip";
String installDir = "/home/user/installDir";
try
{
    ZipFile zipFile = new ZipFile(zipName);
    files = zipFile.entries();
    while (files.hasMoreElements())
    {
         ZipEntry zipEntry = files.nextElement();
         if(zipEntry.isDirectory())
         {
                (new File(installDir + zipEntry.getName())).mkdir();
                 continue;
         }
         InputStream in = zipFile.getInputStream(zipEntry);
         File newFile = new File("/home/user/tmp/testdit" + File.separator + zipEntry.getName());

         new File(newFile.getParent()).mkdirs();
         FileOutputStream fos = new FileOutputStream(newFile);
         byte[] buffer = new byte[1024];
         int len;

         while ((len = in.read(buffer)) >= 0)
         {
                fos.write(buffer, 0, len);
         }

         in.close();
         fos.close();
       }
   } catch (IOException ex)
   {
        ex.printStackTrace();
   }
于 2013-02-11T22:26:34.587 に答える
1

および Apache commons-io は、Java で zip ファイルからデータを読み取る優れたメカニズムを提供しjava.util.zipますが、ディレクトリ構造を維持したまま zip ファイルをディスクに実際に解凍したい場合、そのための最も簡単な Java API はおそらく Apache Ant です。

Project p = new Project();
p.init();
Expand ex = new Expand();
ex.setProject(p);
ex.setSrc(new File("myArchive.zip"));
ex.setDest(new File("targetDir"));
ex.perform();

しかし、他のコメント投稿者が指摘しているように、車輪を再発明するのではなく、IZPackなどの既存のインストーラー ビルド ツールの使用を検討する必要があります。

于 2013-02-11T22:35:13.830 に答える