??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久久久一区二区国产 ,岛国在线大片,免费在线国产http://www.aygfsteel.com/wintys/category/38339.htmlzh-cnMon, 13 Feb 2012 20:40:04 GMTMon, 13 Feb 2012 20:40:04 GMT60[原]手动打包JAR为可执行文ghttp://www.aygfsteel.com/wintys/archive/2012/02/13/jar_package.html天堂露珠天堂露珠Mon, 13 Feb 2012 12:35:00 GMThttp://www.aygfsteel.com/wintys/archive/2012/02/13/jar_package.htmlhttp://www.aygfsteel.com/wintys/comments/369892.htmlhttp://www.aygfsteel.com/wintys/archive/2012/02/13/jar_package.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/369892.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/369892.html[标题]:[原]手动打包JAR为可执行文g
[旉]:2012-02-13
[摘要]:打包JAR的步骤、JAR包内部的资源讉K以及MANIFEST.MF文g格式注意事项?br /> [关键字]: Java、package、打包、Jar、manifest、可执行文g
[文章~号]:暂无
[环境]: JDK 7.0
[作者]: wintys  (wintys@gmail.com)

[正文]:
0、背?br />     管IDE自动打包JAR的功能已l很强大Q但是手动打包JAR的步骤和注意事项也得心知肚明。对于简单的CZE序Q用手动打包也很方ѝ?br />
1、打包JAR
    1.1 建立清单文g
    以下内容为文件内?nbsp;  
    清单文gMANIFEST.MF(在D:\test\class目录?:
    ==================
    Manifest-Version: 1.0   
    Main-Class: aQ主cȝ路径Q此选项可?如果希望在windows下双d执行Q必d)   
    Created-By: 1.7.0_02 (Oracle Corporation)(随便写,q个是创Zh名字)   
    ==================   

    1.2 打包   
    在D:\test\class\目录下执?nbsp;  
    jar cvfm classes.jar MANIFEST.MF *.*   

    以上命oclass下所有文件打包到classes.jar,生成在class目录下?nbsp;  

    1.3 执行   
    输入java -jar classes.jar执行  ?nbsp;  双击classes.jar卛_?

    1.4 另一U方?nbsp;  
    如果希望使用非JAR工具建立JAR文g, 使用WinRAR。首先还是需要徏立一个清单文?名字必须为MANIFEST.MF), 向此文g中写入同使用JAR 工具时一L内容, 接着需要徏立一个META-INF子目? 然后?MANIFEST.MF攑օ此目? 接着可以保持目录结构将所有这些内容?WinRAR 压羃?ZIP 格式的文Ӟ文g名取?xxx.jar 卛_?br />
2、需要注意的相关问题
2.1 JAR中的资源讉K
    E序的资源文??.gif, *.jpg, *.jpeg, *.properties {等)不能使用物理路径, 只能使用相对于当前类文g的相对资源\? 只有q样才能保证打包以后E序才能扑ֈq些资源文g. 那么, q些文g在打开的时候都要用下列语?
    URL url = getClass().getResource(String name);
    或?br />     InputStream in = getClass().getResourceAsStream(String name);

    例如:
    URL url = getClass().getResource("loading.gif");
    ImageIcon icon = new ImageIcon(url);
    其它的资源文件的使用也与此相? 不过属性文?*.properties)的? Java 自动会加?JAR 文g中的属性文? 例如:
ResourceBundle.getBundle("com.abc.test");
那么, q个文g只要攑֜ JAR 文g目录l构下的 com/abc/test.properties, Java p自动扑ֈq个文g.

2.2 清单文g的格?br /> MANIFEST.MF内容CZQ添加JAR库文Ӟ在Class-Path指明路径Q?
    Manifest-Version: 1.0   
    Class-Path: lib/commons-codec-1.4.jar lib/commons-logging-1.1.1.jar li
     b/httpclient-4.1.3.jar lib/httpclient-cache-4.1.3.jar lib/httpcore-4.
     1.4.jar lib/httpmime-4.1.3.jar    
    Created-By: 1.7.0_02 (Oracle Corporation)
    Main-Class: MyLogin

    a.清单文g文g条目的冒号后有一个空根{?br />     b.清单文gL以Manifest-Version属性开?br />     c.每行最?2个字W,如果过Q采用箋行。(手动写MANIFEST.MF时不受此限,用JAR.exe生成JAR包时会自动断行。)
    d.认每行都以回Rl束Q否则改行将会被忽略?br />     e.如果Class-Path 中的存在路径Q?/"分隔目录Q与q_无关?br />     f.Class-Path中的jar包之间用I格分隔Q而非分号?br />     g.如果库不打包入JARQ写成:Class-Path: ./lib/jacob.jar ./lib/jdom.jar ./lib/log4j.jar

[参考资料]:
    [1]*《命令行用JAR打包CALSS文g,很简单? http://www.diybl.com/course/3_program/java/javajs/20090407/164482.html
    [2] 《打包程序ؓ JAR 可执行文件?: http://www.moon-soft.com/doc/25438.htm
    [3] 《打jar把第三方的jar也打q去?: http://www.aygfsteel.com/soddabao/archive/2007/01/08/92455.html
    [4] 《Jar命o Manifest.mf的用法?: http://ganqing.iteye.com/blog/1138341
    [5] 《关?jar包中MANIFEST.MF 写法 ?: http://blog.csdn.net/happyhell/article/details/6639792
    [6]*《JAR File Specification?Oracle) : http://docs.oracle.com/javase/1.3/docs/guide/jar/jar.html#The%20META-INF%20directory
原创作品Q{载请务必保持原文完整性ƈ注明出处?br /> 作?wintys (wintys@gmail.com)
博客:http://www.aygfsteel.com/wintys


天堂露珠 2012-02-13 20:35 发表评论
]]>
[原]手机姓名U - NameShowhttp://www.aygfsteel.com/wintys/archive/2010/01/30/java_javame_nameshow.html天堂露珠天堂露珠Sat, 30 Jan 2010 13:48:00 GMThttp://www.aygfsteel.com/wintys/archive/2010/01/30/java_javame_nameshow.htmlhttp://www.aygfsteel.com/wintys/comments/311343.htmlhttp://www.aygfsteel.com/wintys/archive/2010/01/30/java_javame_nameshow.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/311343.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/311343.html1、如果你的名字是生僻字,没法l成常见词,别h问vQ你得解释半天,最l还是要拿笔写出来别人才明白?
2、当你想向别人展CZ性签名时Q拿出纸质签名就太土了,也不方便?
3、当你需要展C名片时Q纸质名片没有带Q手机d了吧QNameShow派上用Z?

  阅读全文

天堂露珠 2010-01-30 21:48 发表评论
]]>
[转]Tomcat配置JNDI数据?/title><link>http://www.aygfsteel.com/wintys/archive/2009/06/12/java_tomcat_jndi_datasource.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Fri, 12 Jun 2009 04:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/06/12/java_tomcat_jndi_datasource.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/281820.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/06/12/java_tomcat_jndi_datasource.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/281820.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/281820.html</trackback:ping><description><![CDATA[     摘要: 在Tomcat中配|JNDI数据?nbsp; <a href='http://www.aygfsteel.com/wintys/archive/2009/06/12/java_tomcat_jndi_datasource.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wintys/aggbug/281820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-06-12 12:43 <a href="http://www.aygfsteel.com/wintys/archive/2009/06/12/java_tomcat_jndi_datasource.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]授权标准覆盖机制http://www.aygfsteel.com/wintys/archive/2009/05/14/java_EndorsedStandardsOverrideMechanism.html天堂露珠天堂露珠Thu, 14 May 2009 15:32:00 GMThttp://www.aygfsteel.com/wintys/archive/2009/05/14/java_EndorsedStandardsOverrideMechanism.htmlhttp://www.aygfsteel.com/wintys/comments/270728.htmlhttp://www.aygfsteel.com/wintys/archive/2009/05/14/java_EndorsedStandardsOverrideMechanism.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/270728.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/270728.html阅读全文

天堂露珠 2009-05-14 23:32 发表评论
]]>
[原]SAX使用CZhttp://www.aygfsteel.com/wintys/archive/2009/04/26/java_saxdemo.html天堂露珠天堂露珠Sun, 26 Apr 2009 11:18:00 GMThttp://www.aygfsteel.com/wintys/archive/2009/04/26/java_saxdemo.htmlhttp://www.aygfsteel.com/wintys/comments/267595.htmlhttp://www.aygfsteel.com/wintys/archive/2009/04/26/java_saxdemo.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/267595.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/267595.html阅读全文

天堂露珠 2009-04-26 19:18 发表评论
]]>
[原]Ҏq回gؓ数组的另一U表C方?/title><link>http://www.aygfsteel.com/wintys/archive/2009/04/25/java_toCharArrayReturn.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Sat, 25 Apr 2009 14:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/04/25/java_toCharArrayReturn.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/267522.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/04/25/java_toCharArrayReturn.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/267522.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/267522.html</trackback:ping><description><![CDATA[     摘要: public char toCharArray()[] {}  <a href='http://www.aygfsteel.com/wintys/archive/2009/04/25/java_toCharArrayReturn.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wintys/aggbug/267522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-04-25 22:28 <a href="http://www.aygfsteel.com/wintys/archive/2009/04/25/java_toCharArrayReturn.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原]JNI单示?/title><link>http://www.aygfsteel.com/wintys/archive/2009/04/05/java_jnitest.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Sun, 05 Apr 2009 13:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/04/05/java_jnitest.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/264028.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/04/05/java_jnitest.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/264028.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/264028.html</trackback:ping><description><![CDATA[     摘要: Java通过JNI调用DLL  <a href='http://www.aygfsteel.com/wintys/archive/2009/04/05/java_jnitest.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wintys/aggbug/264028.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-04-05 21:33 <a href="http://www.aygfsteel.com/wintys/archive/2009/04/05/java_jnitest.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原]对Class.getMethod()的调用未l检?/title><link>http://www.aygfsteel.com/wintys/archive/2009/04/05/error_getmethodunchecked.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Sun, 05 Apr 2009 07:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/04/05/error_getmethodunchecked.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/263997.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/04/05/error_getmethodunchecked.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/263997.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/263997.html</trackback:ping><description><![CDATA[     摘要: 警告:[unchecked]对作为普通类?java.lang.Class 的成员的 getMethod(java.lang.String,java.lang.Class <?>...) 的调用未l检?  <a href='http://www.aygfsteel.com/wintys/archive/2009/04/05/error_getmethodunchecked.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wintys/aggbug/263997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-04-05 15:52 <a href="http://www.aygfsteel.com/wintys/archive/2009/04/05/error_getmethodunchecked.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原]EL函数的?/title><link>http://www.aygfsteel.com/wintys/archive/2009/04/03/java_elfunction.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Fri, 03 Apr 2009 13:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/04/03/java_elfunction.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/263824.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/04/03/java_elfunction.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/263824.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/263824.html</trackback:ping><description><![CDATA[     摘要: 单的EL函数CZ?nbsp; <a href='http://www.aygfsteel.com/wintys/archive/2009/04/03/java_elfunction.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wintys/aggbug/263824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-04-03 21:29 <a href="http://www.aygfsteel.com/wintys/archive/2009/04/03/java_elfunction.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原]使用Ant实现zip压羃解压功能http://www.aygfsteel.com/wintys/archive/2009/03/19/java_antzipunzip.html天堂露珠天堂露珠Thu, 19 Mar 2009 05:17:00 GMThttp://www.aygfsteel.com/wintys/archive/2009/03/19/java_antzipunzip.htmlhttp://www.aygfsteel.com/wintys/comments/260750.htmlhttp://www.aygfsteel.com/wintys/archive/2009/03/19/java_antzipunzip.html#Feedback11http://www.aygfsteel.com/wintys/comments/commentRss/260750.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/260750.html阅读全文

天堂露珠 2009-03-19 13:17 发表评论
]]>
[导入]Java范型析http://www.aygfsteel.com/wintys/archive/2009/03/18/260427.html天堂露珠天堂露珠Wed, 18 Mar 2009 04:02:00 GMThttp://www.aygfsteel.com/wintys/archive/2009/03/18/260427.htmlhttp://www.aygfsteel.com/wintys/comments/260427.htmlhttp://www.aygfsteel.com/wintys/archive/2009/03/18/260427.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/260427.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/260427.html阅读全文

天堂露珠 2009-03-18 12:02 发表评论
]]>
[导入]使用java.util.zip实现zip压羃和解?/title><link>http://www.aygfsteel.com/wintys/archive/2009/03/18/260426.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Wed, 18 Mar 2009 04:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/03/18/260426.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/260426.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/03/18/260426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/260426.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/260426.html</trackback:ping><description><![CDATA[<div> <div> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px; font-size: 10pt; width: 98%; color: rgb(0, 0, 0); line-height: 16px; font-family: verdana,宋体; background-color: rgb(238, 238, 238);"><font color="#0000ff">import</font> java.io.*; <br /> <font color="#0000ff">import</font> java.util.zip.*; <br /> <font color="#008000">/** <br /> *功能:zip压羃、解?<br /> *说明:本程序通过ZipOutputStream和ZipInputStream实现了zip压羃和解压功? <br /> *问题:׃java.util.zip包ƈ不支持汉?当zip文g中有名字Z文的文g? <br /> *     ׃出现异常:"Exception  in thread "main " java.lang.IllegalArgumentException  <br /> *               at   java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:285) <br /> *解决: <br /> *  Ҏ1、修改import java.util.zip.ZipInputStream和ZipOutputStream. <br /> *          java.util.zip只支持UTF-8,Ant里面可以指定~码. <br /> *  Ҏ2、用Apache Ant里提供的zip工具?<br /> *          不用java.util.zip的包,把ant.jar攑ֈclasspath? <br /> *          E序中用import org.apache.tools.zip.*; <br /> * <br /> *仅供~程学习参? <br /> * <br /> *@author Winty <br /> *@date   2008-8-3 <br /> *@Usage: <br /> *   压羃:java Zip -zip "directoryName" <br /> *   解压:java Zip -unzip "fileName.zip" <br /> */</font> <br /> <br /> <font color="#0000ff">public</font> <font color="#0000ff">class</font> Zip{ <br />     <font color="#0000ff">private</font> ZipInputStream  zipIn;      <font color="#008000">//解压Zip </font><br />     <font color="#0000ff">private</font> ZipOutputStream zipOut;     <font color="#008000">//压羃Zip </font><br />     <font color="#0000ff">private</font> ZipEntry        zipEntry; <br />     <font color="#0000ff">private</font> <font color="#0000ff">static</font> <font color="#0000ff">int</font>      bufSize;    <font color="#008000">//size of bytes </font><br />     <font color="#0000ff">private</font> <font color="#0000ff">byte</font>[]          buf; <br />     <font color="#0000ff">private</font> <font color="#0000ff">int</font>             readedBytes; <br />      <br />     <font color="#0000ff">public</font> Zip(){ <br />         <font color="#0000ff">this</font>(512); <br />     } <br /> <br />     <font color="#0000ff">public</font> Zip(<font color="#0000ff">int</font> bufSize){ <br />         <font color="#0000ff">this</font>.bufSize = bufSize; <br />         <font color="#0000ff">this</font>.buf = <font color="#0000ff">new</font> <font color="#0000ff">byte</font>[<font color="#0000ff">this</font>.bufSize]; <br />     } <br />      <br />     <font color="#008000">//压羃文g夹内的文?</font><br />     <font color="#0000ff">public</font> <font color="#0000ff">void</font> doZip(String zipDirectory){<font color="#008000">//zipDirectoryPath:需要压~的文g夹名 </font><br />         File file; <br />         File zipDir; <br /> <br />         zipDir = <font color="#0000ff">new</font> File(zipDirectory); <br />         String zipFileName = zipDir.getName() + <font color="#800000">".zip"</font>;<font color="#008000">//压羃后生成的zip文g?</font><br /> <br />         <font color="#0000ff">try</font>{ <br />             <font color="#0000ff">this</font>.zipOut = <font color="#0000ff">new</font> ZipOutputStream(<font color="#0000ff">new</font> BufferedOutputStream(<font color="#0000ff">new</font> FileOutputStream(zipFileName))); <br />             handleDir(zipDir , <font color="#0000ff">this</font>.zipOut); <br />             <font color="#0000ff">this</font>.zipOut.close(); <br />         }<font color="#0000ff">catch</font>(IOException ioe){ <br />             ioe.printStackTrace(); <br />         } <br />     } <br /> <br />     <font color="#008000">//由doZip调用,递归完成目录文gd </font><br />     <font color="#0000ff">private</font> <font color="#0000ff">void</font> handleDir(File dir , ZipOutputStream zipOut)<font color="#0000ff">throws</font> IOException{ <br />         FileInputStream fileIn; <br />         File[] files; <br /> <br />         files = dir.listFiles(); <br />      <br />         <font color="#0000ff">if</font>(files.length == 0){<font color="#008000">//如果目录为空,则单独创Z. </font><br />             <font color="#008000">//ZipEntry的isDirectory()Ҏ?目录?/"l尾. </font><br />             <font color="#0000ff">this</font>.zipOut.putNextEntry(<font color="#0000ff">new</font> ZipEntry(dir.toString() + <font color="#800000">"/"</font>)); <br />             <font color="#0000ff">this</font>.zipOut.closeEntry(); <br />         } <br />         <font color="#0000ff">else</font>{<font color="#008000">//如果目录不ؓI?则分别处理目录和文g. </font><br />             <font color="#0000ff">for</font>(File fileName : files){ <br />                 <font color="#008000">//System.out.println(fileName); </font><br /> <br />                 <font color="#0000ff">if</font>(fileName.isDirectory()){ <br />                     handleDir(fileName , <font color="#0000ff">this</font>.zipOut); <br />                 } <br />                 <font color="#0000ff">else</font>{ <br />                     fileIn = <font color="#0000ff">new</font> FileInputStream(fileName); <br />                     <font color="#0000ff">this</font>.zipOut.putNextEntry(<font color="#0000ff">new</font> ZipEntry(fileName.toString())); <br /> <br />                     <font color="#0000ff">while</font>((<font color="#0000ff">this</font>.readedBytes = fileIn.read(<font color="#0000ff">this</font>.buf))>0){ <br />                         <font color="#0000ff">this</font>.zipOut.write(<font color="#0000ff">this</font>.buf , 0 , <font color="#0000ff">this</font>.readedBytes); <br />                     } <br /> <br />                     <font color="#0000ff">this</font>.zipOut.closeEntry(); <br />                 } <br />             } <br />         } <br />     } <br /> <br />     <font color="#008000">//解压指定zip文g </font><br />     <font color="#0000ff">public</font> <font color="#0000ff">void</font> unZip(String unZipfileName){<font color="#008000">//unZipfileName需要解压的zip文g?</font><br />         FileOutputStream fileOut; <br />         File file; <br /> <br />         <font color="#0000ff">try</font>{ <br />             <font color="#0000ff">this</font>.zipIn = <font color="#0000ff">new</font> ZipInputStream (<font color="#0000ff">new</font> BufferedInputStream(<font color="#0000ff">new</font> FileInputStream(unZipfileName))); <br /> <br />             <font color="#0000ff">while</font>((<font color="#0000ff">this</font>.zipEntry = <font color="#0000ff">this</font>.zipIn.getNextEntry()) != <font color="#0000ff">null</font>){ <br />                 file = <font color="#0000ff">new</font> File(<font color="#0000ff">this</font>.zipEntry.getName()); <br />                 <font color="#008000">//System.out.println(file);/// </font><br /> <br />                 <font color="#0000ff">if</font>(<font color="#0000ff">this</font>.zipEntry.isDirectory()){ <br />                     file.mkdirs(); <br />                 } <br />                 <font color="#0000ff">else</font>{ <br />                     <font color="#008000">//如果指定文g的目录不存在,则创Z. </font><br />                     File parent = file.getParentFile(); <br />                     <font color="#0000ff">if</font>(!parent.exists()){ <br />                         parent.mkdirs(); <br />                     } <br /> <br />                     fileOut = <font color="#0000ff">new</font> FileOutputStream(file); <br />                     <font color="#0000ff">while</font>(( <font color="#0000ff">this</font>.readedBytes = <font color="#0000ff">this</font>.zipIn.read(<font color="#0000ff">this</font>.buf) ) > 0){ <br />                         fileOut.write(<font color="#0000ff">this</font>.buf , 0 , <font color="#0000ff">this</font>.readedBytes ); <br />                     } <br />                     fileOut.close(); <br />                 } <br />                 <font color="#0000ff">this</font>.zipIn.closeEntry();     <br />             } <br />         }<font color="#0000ff">catch</font>(IOException ioe){ <br />             ioe.printStackTrace(); <br />         } <br />     } <br /> <br />     <font color="#008000">//讄~冲区大?</font><br />     <font color="#0000ff">public</font> <font color="#0000ff">void</font> setBufSize(<font color="#0000ff">int</font> bufSize){ <br />         <font color="#0000ff">this</font>.bufSize = bufSize; <br />     } <br /> <br />     <font color="#008000">//试Zipc?</font><br />     <font color="#0000ff">public</font> <font color="#0000ff">static</font> <font color="#0000ff">void</font> main(String[] args)<font color="#0000ff">throws</font> Exception{ <br />         <font color="#0000ff">if</font>(args.length==2){ <br />             String name = args[1]; <br />             Zip zip = <font color="#0000ff">new</font> Zip(); <br /> <br />             <font color="#0000ff">if</font>(args[0].equals(<font color="#800000">"-zip"</font>)) <br />                 zip.doZip(name); <br />             <font color="#0000ff">else</font> <font color="#0000ff">if</font>(args[0].equals(<font color="#800000">"-unzip"</font>)) <br />                 zip.unZip(name); <br />         } <br />         <font color="#0000ff">else</font>{ <br />             System.out.println(<font color="#800000">"Usage:"</font>); <br />             System.out.println(<font color="#800000">"压羃:java Zip -zip directoryName"</font>); <br />             System.out.println(<font color="#800000">"解压:java Zip -unzip fileName.zip"</font>); <br />             <font color="#0000ff">throw</font> <font color="#0000ff">new</font> Exception(<font color="#800000">"Arguments error!"</font>); <br />         } <br />     } <br /> }</div> </div> </div> <br /> 文章来源:<a >http://wintys.blog.51cto.com/425414/90872</a> <img src ="http://www.aygfsteel.com/wintys/aggbug/260426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-03-18 12:02 <a href="http://www.aygfsteel.com/wintys/archive/2009/03/18/260426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]使用org.apache.tools.zip实现zip压羃和解?/title><link>http://www.aygfsteel.com/wintys/archive/2009/03/18/260425.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Wed, 18 Mar 2009 04:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/03/18/260425.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/260425.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/03/18/260425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/260425.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/260425.html</trackback:ping><description><![CDATA[<div> <div style="border: 1px solid #cccccc; padding: 4px; font-size: 10pt; width: 98%; color: #000000; line-height: 16px; font-family: verdana,宋体; background-color: #eeeeee;"><font color="#0000ff">import</font> java.io.*; <br /> <font color="#0000ff">import</font> org.apache.tools.zip.*; <br /> <font color="#0000ff">import</font> java.util.Enumeration; <br /> <font color="#008000">/** <br /> *功能:zip压羃、解?支持中文文g? <br /> *说明:本程序通过使用Apache Ant里提供的zip工具org.apache.tools.zip实现了zip压羃和解压功? <br /> *   解决了由于java.util.zip包不支持汉字的问题?<br /> *   使用java.util.zip包时,当zip文g中有名字Z文的文g? <br /> *   ׃出现异常:"Exception  in thread "main " java.lang.IllegalArgumentException  <br /> *               at   java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:285) <br /> *注意: <br /> *   1、用时把ant.jar攑ֈclasspath?E序中用import org.apache.tools.zip.*; <br /> *   2、Apache Ant 下蝲地址:[url]http://ant.apache.org/[/url] <br /> *   3、Ant ZIP API:[url]http://www.jajakarta.org/ant/ant-1.6.1/docs/mix/manual/api/org/apache/tools/zip/[/url] <br /> *   4、本E序使用Ant 1.7.1 中的ant.jar <br /> * <br /> *仅供~程学习参? <br /> * <br /> *@author Winty <br /> *@date   2008-8-3 <br /> *@Usage: <br /> *   压羃:java AntZip -zip "directoryName" <br /> *   解压:java AntZip -unzip "fileName.zip" <br /> */</font> <br /> <br /> <font color="#0000ff">public</font> <font color="#0000ff">class</font> AntZip{ <br />     <font color="#0000ff">private</font> ZipFile         zipFile; <br />     <font color="#0000ff">private</font> ZipOutputStream zipOut;     <font color="#008000">//压羃Zip </font><br />     <font color="#0000ff">private</font> ZipEntry        zipEntry; <br />     <font color="#0000ff">private</font> <font color="#0000ff">static</font> <font color="#0000ff">int</font>      bufSize;    <font color="#008000">//size of bytes </font><br />     <font color="#0000ff">private</font> <font color="#0000ff">byte</font>[]          buf; <br />     <font color="#0000ff">private</font> <font color="#0000ff">int</font>             readedBytes; <br />      <br />     <font color="#0000ff">public</font> AntZip(){ <br />         <font color="#0000ff">this</font>(512); <br />     } <br /> <br />     <font color="#0000ff">public</font> AntZip(<font color="#0000ff">int</font> bufSize){ <br />         <font color="#0000ff">this</font>.bufSize = bufSize; <br />         <font color="#0000ff">this</font>.buf = <font color="#0000ff">new</font> <font color="#0000ff">byte</font>[<font color="#0000ff">this</font>.bufSize]; <br />     } <br />      <br />     <font color="#008000">//压羃文g夹内的文?</font><br />     <font color="#0000ff">public</font> <font color="#0000ff">void</font> doZip(String zipDirectory){<font color="#008000">//zipDirectoryPath:需要压~的文g夹名 </font><br />         File file; <br />         File zipDir; <br /> <br />         zipDir = <font color="#0000ff">new</font> File(zipDirectory); <br />         String zipFileName = zipDir.getName() + <font color="#800000">".zip"</font>;<font color="#008000">//压羃后生成的zip文g?</font><br /> <br />         <font color="#0000ff">try</font>{ <br />             <font color="#0000ff">this</font>.zipOut = <font color="#0000ff">new</font> ZipOutputStream(<font color="#0000ff">new</font> BufferedOutputStream(<font color="#0000ff">new</font> FileOutputStream(zipFileName))); <br />             handleDir(zipDir , <font color="#0000ff">this</font>.zipOut); <br />             <font color="#0000ff">this</font>.zipOut.close(); <br />         }<font color="#0000ff">catch</font>(IOException ioe){ <br />             ioe.printStackTrace(); <br />         } <br />     } <br /> <br />     <font color="#008000">//由doZip调用,递归完成目录文gd </font><br />     <font color="#0000ff">private</font> <font color="#0000ff">void</font> handleDir(File dir , ZipOutputStream zipOut)<font color="#0000ff">throws</font> IOException{ <br />         FileInputStream fileIn; <br />         File[] files; <br /> <br />         files = dir.listFiles(); <br />      <br />         <font color="#0000ff">if</font>(files.length == 0){<font color="#008000">//如果目录为空,则单独创Z. </font><br />             <font color="#008000">//ZipEntry的isDirectory()Ҏ?目录?/"l尾. </font><br />             <font color="#0000ff">this</font>.zipOut.putNextEntry(<font color="#0000ff">new</font> ZipEntry(dir.toString() + <font color="#800000">"/"</font>)); <br />             <font color="#0000ff">this</font>.zipOut.closeEntry(); <br />         } <br />         <font color="#0000ff">else</font>{<font color="#008000">//如果目录不ؓI?则分别处理目录和文g. </font><br />             <font color="#0000ff">for</font>(File fileName : files){ <br />                 <font color="#008000">//System.out.println(fileName); </font><br /> <br />                 <font color="#0000ff">if</font>(fileName.isDirectory()){ <br />                     handleDir(fileName , <font color="#0000ff">this</font>.zipOut); <br />                 } <br />                 <font color="#0000ff">else</font>{ <br />                     fileIn = <font color="#0000ff">new</font> FileInputStream(fileName); <br />                     <font color="#0000ff">this</font>.zipOut.putNextEntry(<font color="#0000ff">new</font> ZipEntry(fileName.toString())); <br /> <br />                     <font color="#0000ff">while</font>((<font color="#0000ff">this</font>.readedBytes = fileIn.read(<font color="#0000ff">this</font>.buf))>0){ <br />                         <font color="#0000ff">this</font>.zipOut.write(<font color="#0000ff">this</font>.buf , 0 , <font color="#0000ff">this</font>.readedBytes); <br />                     } <br /> <br />                     <font color="#0000ff">this</font>.zipOut.closeEntry(); <br />                 } <br />             } <br />         } <br />     } <br /> <br />     <font color="#008000">//解压指定zip文g </font><br />     <font color="#0000ff">public</font> <font color="#0000ff">void</font> unZip(String unZipfileName){<font color="#008000">//unZipfileName需要解压的zip文g?</font><br />         FileOutputStream fileOut; <br />         File file; <br />         InputStream inputStream; <br /> <br />         <font color="#0000ff">try</font>{ <br />             <font color="#0000ff">this</font>.zipFile = <font color="#0000ff">new</font> ZipFile(unZipfileName); <br /> <br />             <font color="#0000ff">for</font>(Enumeration entries = <font color="#0000ff">this</font>.zipFile.getEntries(); entries.hasMoreElements();){ <br />                 ZipEntry entry = (ZipEntry)entries.nextElement(); <br />                 file = <font color="#0000ff">new</font> File(entry.getName()); <br /> <br />                 <font color="#0000ff">if</font>(entry.isDirectory()){ <br />                     file.mkdirs(); <br />                 } <br />                 <font color="#0000ff">else</font>{ <br />                     <font color="#008000">//如果指定文g的目录不存在,则创Z. </font><br />                     File parent = file.getParentFile(); <br />                     <font color="#0000ff">if</font>(!parent.exists()){ <br />                         parent.mkdirs(); <br />                     } <br /> <br />                     inputStream = zipFile.getInputStream(entry); <br /> <br />                     fileOut = <font color="#0000ff">new</font> FileOutputStream(file); <br />                     <font color="#0000ff">while</font>(( <font color="#0000ff">this</font>.readedBytes = inputStream.read(<font color="#0000ff">this</font>.buf) ) > 0){ <br />                         fileOut.write(<font color="#0000ff">this</font>.buf , 0 , <font color="#0000ff">this</font>.readedBytes ); <br />                     } <br />                     fileOut.close(); <br /> <br />                     inputStream.close(); <br />                 }    <br />             } <br />             <font color="#0000ff">this</font>.zipFile.close(); <br />         }<font color="#0000ff">catch</font>(IOException ioe){ <br />             ioe.printStackTrace(); <br />         } <br />     } <br /> <br />     <font color="#008000">//讄~冲区大?</font><br />     <font color="#0000ff">public</font> <font color="#0000ff">void</font> setBufSize(<font color="#0000ff">int</font> bufSize){ <br />         <font color="#0000ff">this</font>.bufSize = bufSize; <br />     } <br /> <br />     <font color="#008000">//试AntZipc?</font><br />     <font color="#0000ff">public</font> <font color="#0000ff">static</font> <font color="#0000ff">void</font> main(String[] args)<font color="#0000ff">throws</font> Exception{ <br />         <font color="#0000ff">if</font>(args.length==2){ <br />             String name = args[1]; <br />             AntZip zip = <font color="#0000ff">new</font> AntZip(); <br /> <br />             <font color="#0000ff">if</font>(args[0].equals(<font color="#800000">"-zip"</font>)) <br />                 zip.doZip(name); <br />             <font color="#0000ff">else</font> <font color="#0000ff">if</font>(args[0].equals(<font color="#800000">"-unzip"</font>)) <br />                 zip.unZip(name); <br />         } <br />         <font color="#0000ff">else</font>{ <br />             System.out.println(<font color="#800000">"Usage:"</font>); <br />             System.out.println(<font color="#800000">"压羃:java AntZip -zip directoryName"</font>); <br />             System.out.println(<font color="#800000">"解压:java AntZip -unzip fileName.zip"</font>); <br />             <font color="#0000ff">throw</font> <font color="#0000ff">new</font> Exception(<font color="#800000">"Arguments error!"</font>); <br />         } <br />     } <br /> }</div> </div> <br /> 文章来源:<a >http://wintys.blog.51cto.com/425414/90878</a><br /> <a href="/Files/wintys/import/ant.zip">ant1.7.1.jar下蝲</a><br /> <img src ="http://www.aygfsteel.com/wintys/aggbug/260425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-03-18 12:02 <a href="http://www.aygfsteel.com/wintys/archive/2009/03/18/260425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Java实现折半查找(二分查找)的递归和非递归法http://www.aygfsteel.com/wintys/archive/2009/03/18/260420.html天堂露珠天堂露珠Wed, 18 Mar 2009 04:02:00 GMThttp://www.aygfsteel.com/wintys/archive/2009/03/18/260420.htmlhttp://www.aygfsteel.com/wintys/comments/260420.htmlhttp://www.aygfsteel.com/wintys/archive/2009/03/18/260420.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/260420.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/260420.html
/**
*名称:BinarySearch
*功能:实现了折半查?二分查找)的递归和非递归法.
*说明:
*     1、要求所查找的数l已有序,q且其中元素已实现Comparable<T>接口,如Integer、String{?
*    2、非递归查找使用search();,递归查找使用searchRecursively();
*
*本程序仅供编E学习参?br /> *
*@author:   Winty
*@date:     2008-8-11
*@email:    [email]wintys@gmail.com[/email]
*/


class BinarySearch<T extends Comparable<T>> {
    private T[]  data;//要排序的数据

    public BinarySearch(T[] data){
        this.data = data;
    }

    public int search(T key){
        int low;
        int high;
        int mid;

        if(data == null)
            return -1;

        low = 0;
        high = data.length - 1;

        while(low <= high){
            mid = (low + high) / 2;
            System.out.println("mid " + mid + " mid value:" + data[mid]);///
            
            if(key.compareTo(data[mid]) < 0){
                high = mid - 1;
            }else if(key.compareTo(data[mid]) > 0){
                low = mid + 1;
            }else if(key.compareTo(data[mid]) == 0){
                return mid;
            }
        }

        return -1;
    }

    private int doSearchRecursively(int low , int high , T key){
        int mid;
        int result;

        if(low <= high){
            mid = (low + high) / 2;
            result = key.compareTo(data[mid]);
            System.out.println("mid " + mid + " mid value:" + data[mid]);///
            
            if(result < 0){
                return doSearchRecursively(low , mid - 1 , key);
            }else if(result > 0){
                return doSearchRecursively(mid + 1 , high , key);
            }else if(result == 0){
                return mid;
            }
        }
        
        return -1;
    }

    public int searchRecursively(T key){
        if(data ==null)return -1;

        return doSearchRecursively(0 , data.length - 1 , key);
    }

    public static void main(String[] args){
        Integer[] data = {1 ,4 ,5 ,8 ,15 ,33 ,48 ,77 ,96};
        BinarySearch<Integer> binSearch = new BinarySearch<Integer>(data);
        //System.out.println("Key index:" + binSearch.search(33) );

        System.out.println("Key index:" + binSearch.searchRecursively(3) );

        //String [] dataStr = {"A" ,"C" ,"F" ,"J" ,"L" ,"N" ,"T"};
        //BinarySearch<String> binSearch = new BinarySearch<String>(dataStr);
        //System.out.println("Key index:" + binSearch.search("A") );
    }
}


文章来源:http://wintys.blog.51cto.com/425414/94051

天堂露珠 2009-03-18 12:02 发表评论
]]>
[原]导出CodeHelp的数?/title><link>http://www.aygfsteel.com/wintys/archive/2009/03/16/java_codehelpexporter.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Mon, 16 Mar 2009 09:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/wintys/archive/2009/03/16/java_codehelpexporter.html</guid><wfw:comment>http://www.aygfsteel.com/wintys/comments/260051.html</wfw:comment><comments>http://www.aygfsteel.com/wintys/archive/2009/03/16/java_codehelpexporter.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wintys/comments/commentRss/260051.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wintys/services/trackbacks/260051.html</trackback:ping><description><![CDATA[     摘要: CodeHelp是专门ؓ我们E序员设计的一ƾ源代码理软g。它能方便的理您在~程和学习中有用的源代码Q减经常到处查找资料的力_Q节省您在开发中的时间和_֊。这个Y件不错,如果没有用过请到q里下蝲(http://www.nulldo.com/)。用了一D|_发现它ƈ没有文g导出功能。于是用Java写了一个CodeHelpExporter?nbsp; <a href='http://www.aygfsteel.com/wintys/archive/2009/03/16/java_codehelpexporter.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wintys/aggbug/260051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wintys/" target="_blank">天堂露珠</a> 2009-03-16 17:05 <a href="http://www.aygfsteel.com/wintys/archive/2009/03/16/java_codehelpexporter.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Java 例子:数据持久化(保存数据到文Ӟhttp://www.aygfsteel.com/wintys/archive/2009/03/16/java_Persistant.html天堂露珠天堂露珠Mon, 16 Mar 2009 03:00:00 GMThttp://www.aygfsteel.com/wintys/archive/2009/03/16/java_Persistant.htmlhttp://www.aygfsteel.com/wintys/comments/259960.htmlhttp://www.aygfsteel.com/wintys/archive/2009/03/16/java_Persistant.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/259960.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/259960.html阅读全文

天堂露珠 2009-03-16 11:00 发表评论
]]>
[原]Java讉KACCESS数据?http://www.aygfsteel.com/wintys/archive/2008/12/21/java_access.html天堂露珠天堂露珠Sun, 21 Dec 2008 14:27:00 GMThttp://www.aygfsteel.com/wintys/archive/2008/12/21/java_access.htmlhttp://www.aygfsteel.com/wintys/comments/247660.htmlhttp://www.aygfsteel.com/wintys/archive/2008/12/21/java_access.html#Feedback0http://www.aygfsteel.com/wintys/comments/commentRss/247660.htmlhttp://www.aygfsteel.com/wintys/services/trackbacks/247660.html阅读全文

天堂露珠 2008-12-21 22:27 发表评论
]]>
վ֩ģ壺 | | ʻ| | | | 㽭ʡ| | | | ƽ| | | ƽ| ǭ| | | ߰| ɽ| ǿ| ԭ| Ϫ| Զ| ĩ| | ɽ| | | ۲| | | ƺ| | ͨ| | Ͻ| ƽ̶| ͼƬ| | | |