{"id":1436,"date":"2017-10-17T09:55:34","date_gmt":"2017-10-17T01:55:34","guid":{"rendered":"https:\/\/www.strongd.net\/?p=1436"},"modified":"2017-10-17T09:55:34","modified_gmt":"2017-10-17T01:55:34","slug":"%e5%88%9b%e5%bb%bazip%e5%92%8cjar%e6%96%87%e4%bb%b6-create-zip-jar","status":"publish","type":"post","link":"https:\/\/www.strongd.net\/?p=1436","title":{"rendered":"\u521b\u5efaZIP\u548cJAR\u6587\u4ef6 create zip jar"},"content":{"rendered":"<ol class=\"dp-j\" start=\"1\">\n<li><span class=\"keyword\">import<\/span>\u00a0java.util.zip.*;<\/li>\n<li><span class=\"keyword\">import<\/span>\u00a0java.io.*;<\/li>\n<li><\/li>\n<li><span class=\"keyword\">public<\/span>\u00a0<span class=\"keyword\">class<\/span>\u00a0ZipIt\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">public<\/span>\u00a0<span class=\"keyword\">static<\/span>\u00a0<span class=\"keyword\">void<\/span>\u00a0main(String\u00a0args[])\u00a0<span class=\"keyword\">throws<\/span>\u00a0IOException\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">if<\/span>\u00a0(args.length\u00a0&lt;\u00a0<span class=\"number\">2<\/span>)\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(<span class=\"string\">&#8220;usage:\u00a0java\u00a0ZipIt\u00a0Zip.zip\u00a0file1\u00a0file2\u00a0file3&#8221;<\/span>);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.exit(-<span class=\"number\">1<\/span>);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File\u00a0zipFile\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0File(args[<span class=\"number\">0<\/span>]);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">if<\/span>\u00a0(zipFile.exists())\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(<span class=\"string\">&#8220;Zip\u00a0file\u00a0already\u00a0exists,\u00a0please\u00a0try\u00a0another&#8221;<\/span>);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.exit(-<span class=\"number\">2<\/span>);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FileOutputStream\u00a0fos\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0FileOutputStream(zipFile);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ZipOutputStream\u00a0zos\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0ZipOutputStream(fos);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">int<\/span>\u00a0bytesRead;<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">byte<\/span>[]\u00a0buffer\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0<span class=\"keyword\">byte<\/span>[<span class=\"number\">1024<\/span>];<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CRC32\u00a0crc\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0CRC32();<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>\u00a0(<span class=\"keyword\">int<\/span>\u00a0i=<span class=\"number\">1<\/span>,\u00a0n=args.length;\u00a0i\u00a0&lt;\u00a0n;\u00a0i++)\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0String\u00a0name\u00a0=\u00a0args[i];<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File\u00a0file\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0File(name);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">if<\/span>\u00a0(!file.exists())\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(<span class=\"string\">&#8220;Skipping:\u00a0&#8220;<\/span>\u00a0+\u00a0name);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">continue<\/span>;<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0BufferedInputStream\u00a0bis\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0BufferedInputStream(<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">new<\/span>\u00a0FileInputStream(file));<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0crc.reset();<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">while<\/span>\u00a0((bytesRead\u00a0=\u00a0bis.read(buffer))\u00a0!=\u00a0&#8211;<span class=\"number\">1<\/span>)\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0crc.update(buffer,\u00a0<span class=\"number\">0<\/span>,\u00a0bytesRead);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bis.close();<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/\u00a0Reset\u00a0to\u00a0beginning\u00a0of\u00a0input\u00a0stream\u00a0\u00a0<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bis\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0BufferedInputStream(<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">new<\/span>\u00a0FileInputStream(file));<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ZipEntry\u00a0entry\u00a0=\u00a0<span class=\"keyword\">new<\/span>\u00a0ZipEntry(name);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setMethod(ZipEntry.STORED);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setCompressedSize(file.length());<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setSize(file.length());<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setCrc(crc.getValue());<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0zos.putNextEntry(entry);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">while<\/span>\u00a0((bytesRead\u00a0=\u00a0bis.read(buffer))\u00a0!=\u00a0&#8211;<span class=\"number\">1<\/span>)\u00a0{<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0zos.write(buffer,\u00a0<span class=\"number\">0<\/span>,\u00a0bytesRead);<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bis.close();<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0zos.close();<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li>}<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>import\u00a0java.util.zip.*; import\u00a0java.io.*; public\u00a0class\u00a0ZipIt\u00a0{ \u00a0\u00a0\u00a0\u00a0public\u00a0static\u00a0void\u00a0main(String\u00a0args[])\u00a0throws\u00a0IOException\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0(args.length\u00a0&lt;\u00a02)\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(&#8220;usage:\u00a0java\u00a0ZipIt\u00a0Zip.zip\u00a0file1\u00a0file2\u00a0file3&#8221;); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.exit(-1); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File\u00a0zipFile\u00a0=\u00a0new\u00a0File(args[0]); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0(zipFile.exists())\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(&#8220;Zip\u00a0file\u00a0already\u00a0exists,\u00a0please\u00a0try\u00a0another&#8221;); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.exit(-2); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FileOutputStream\u00a0fos\u00a0=\u00a0new\u00a0FileOutputStream(zipFile); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ZipOutputStream\u00a0zos\u00a0=\u00a0new\u00a0ZipOutputStream(fos); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0bytesRead; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0byte[]\u00a0buffer\u00a0=\u00a0new\u00a0byte[1024]; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CRC32\u00a0crc\u00a0=\u00a0new\u00a0CRC32(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for\u00a0(int\u00a0i=1,\u00a0n=args.length;\u00a0i\u00a0&lt;\u00a0n;\u00a0i++)\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0String\u00a0name\u00a0=\u00a0args[i]; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File\u00a0file\u00a0=\u00a0new\u00a0File(name); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0(!file.exists())\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(&#8220;Skipping:\u00a0&#8220;\u00a0+\u00a0name); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0continue; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0BufferedInputStream\u00a0bis\u00a0=\u00a0new\u00a0BufferedInputStream( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new\u00a0FileInputStream(file)); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0crc.reset(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while\u00a0((bytesRead\u00a0=\u00a0bis.read(buffer))\u00a0!=\u00a0&#8211;1)\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0crc.update(buffer,\u00a00,\u00a0bytesRead); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bis.close(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0Reset\u00a0to\u00a0beginning\u00a0of\u00a0input\u00a0stream\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bis\u00a0=\u00a0new\u00a0BufferedInputStream( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new\u00a0FileInputStream(file)); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ZipEntry\u00a0entry\u00a0=\u00a0new\u00a0ZipEntry(name); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setMethod(ZipEntry.STORED); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setCompressedSize(file.length()); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setSize(file.length()); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0entry.setCrc(crc.getValue()); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0zos.putNextEntry(entry); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while\u00a0((bytesRead\u00a0=\u00a0bis.read(buffer))\u00a0!=\u00a0&#8211;1)\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0zos.write(buffer,\u00a00,\u00a0bytesRead); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bis.close(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0zos.close(); \u00a0\u00a0\u00a0\u00a0} }<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9],"class_list":["post-1436","post","type-post","status-publish","format-standard","hentry","category-java","tag-java-2"],"_links":{"self":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1436"}],"version-history":[{"count":1,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1436\/revisions"}],"predecessor-version":[{"id":1437,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1436\/revisions\/1437"}],"wp:attachment":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}