<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零全零美(www.zzgwt.com)
    生活中的很多事情,并不像If...Else那么簡單!
    posts - 96,comments - 52,trackbacks - 0

        由于開發www.website371.com 、www.modaotea.com 兩個網站時使用的框架是自己寫的,其中有一個工具是模擬hibernate的思路,動態生成對象關系映射!中間利用freemarker生成.java類!但是始終存在一個很大的問題,就是生成的.java文件,沒有辦法直接編譯,當然最好的結果當然是自動編譯后能達成JAR包,直接放在工程里!
        研究好了半天,終于找到一種解決方案,既然是用JAVA生成.java文件自動編譯并打成JAR包,
    那第一步自然就是用JAVA執行CMD命令了(注意多個命令之間要用“&&”隔開哦,在這個問題上浪費了我很多時間?。?br />第二步:利用javac編譯.java文件(因.java依賴包過多,如果手寫要累死了??!這里正好使用:System.getProperty("java.class.path"))
    第三步:利用jar命令打包
    全部代碼如下:

    public final static String FILE_PATH = "d:\\db2java\\";
        
    public final static String PACKAGE_PATH = "com/zzsb/beans/";
        
    public final static String CLASS_FILE_PATH = FILE_PATH+"classes";
            String cmd 
    = "cmd /c cd /d " + FILE_PATH + 
            
    " && " +
            
    "javac -classpath "+ System.getProperty("java.class.path"+" "+ FILE_PATH+PACKAGE_PATH + "*.java " + 
            
    " && " +
            
    "jar cf bean-"+TABLE_SCHEMA+"-"+ DateUtil.getCurrentDate14() +".jar " + PACKAGE_PATH+"*.class" +
            
    " && " +
            
    "jar cf bean-source-"+TABLE_SCHEMA+"-"+ DateUtil.getCurrentDate14() +".jar " + PACKAGE_PATH+"*.java" +
            
    " && " +
            
    "jar cf bean-all-"+TABLE_SCHEMA+"-"+ DateUtil.getCurrentDate14() +".jar " + PACKAGE_PATH+"*.*" 
            ;
            System.out.println(cmd);
            Process p 
    = Runtime.getRuntime().exec(cmd);


    可以看一下控制臺輸出的代碼,您就明白了:

    cmd /c cd /d d:\db2java\ && javac -classpath E:\job\workspace\DianLiang\WebRoot\WEB-INF\classes;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\acegi-security-1.0.7.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\activation.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\axis.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\axis-ant.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\bonecp-0.7.1.RELEASE.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-attributes-api.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-attributes-compiler.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-beanutils-1.8.3.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-cli-1.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-codec-1.3.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-collections-3.2.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-configuration-1.4.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-discovery-0.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-fileupload-1.2.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-io-2.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-lang-2.5.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-logging.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-pool-1.4.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\ezmorph-1.0.6.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\freemarker.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\guava-r09.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\javassist.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jaxrpc.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jdbcspy.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jodconverter-2.2.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jodconverter-cli-2.2.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\json_simple-1.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\json-lib-2.2.3-jdk15.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\juh-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jurt-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jxl.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\kaptcha-2.3.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\log4j-1.2.15.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\mail.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\mysql-connector-java-5.1.13-bin.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\ognl-2.7.3.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\quartz-2.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\ridl-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\saaj.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\slf4j-api-1.6.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\slf4j-jdk14-1.6.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\unoil-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\urlrewrite-3.2.0.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\wsdl4j-1.5.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\xstream-1.3.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\bean-dianliang-20120723181047.jar d:\db2java\com/zzsb/beans/*.java  && jar cf bean-dianliang-20120724232924.jar com/zzsb/beans/*.class && jar cf bean-source-dianliang-20120724232924.jar com/zzsb/beans/*.java && jar cf bean-all-dianliang-20120724232924.jar com/zzsb/beans/*.*

    看看System.getProperty()都為我們提供了什么有用信息吧!

    java.version

    Java 運行時環境版本

    java.vendor

    Java 運行時環境供應商

    java.vendor.url

    Java 供應商的 URL

    java.home

    Java 安裝目錄

    java.vm.specification.version

    Java 虛擬機規范版本

    java.vm.specification.vendor

    Java 虛擬機規范供應商

    java.vm.specification.name

    Java 虛擬機規范名稱

    java.vm.version

    Java 虛擬機實現版本

    java.vm.vendor

    Java 虛擬機實現供應商

    java.vm.name

    Java 虛擬機實現名稱

    java.specification.version

    Java 運行時環境規范版本

    java.specification.vendor

    Java 運行時環境規范供應商

    java.specification.name

    Java 運行時環境規范名稱

    java.class.version

    Java 類格式版本號

    java.class.path

    Java 類路徑

    java.library.path

    加載庫時搜索的路徑列表

    java.io.tmpdir

    默認的臨時文件路徑

    java.compiler

    要使用的 JIT 編譯器的名稱

    java.ext.dirs

    一個或多個擴展目錄的路徑

    os.name

    操作系統的名稱

    os.arch

    操作系統的架構

    os.version

    操作系統的版本

    file.separator

    文件分隔符(在 UNIX 系統中是“/”)

    path.separator

    路徑分隔符(在 UNIX 系統中是“:”)

    line.separator

    行分隔符(在 UNIX 系統中是“/n”)

    user.name

    用戶的賬戶名稱

    user.home

    用戶的主目錄

    user.dir

    用戶的當前工作目錄

    本文所提供的方法解決了使用JAVA動態編譯現有工程中的源文件的簡便方法,順便說一下有空可以去www.modaotea.com 喝茶,老板人不錯,對茶這塊很專業,不像我這種苦逼的程序員,無聊透頂??!
    文章原創,轉載請以超鏈接形式標明文章原始出處和作者

    posted on 2012-07-24 23:44 零全零美 閱讀(1525) 評論(1)  編輯  收藏 所屬分類: JavaScriptjbpmPL/SQL 、正則表達式 、oracle 、ubuntutomcatapache組件 、設計模式 、安全相關SEO

    FeedBack:
    # re: [原創]巧用System.getProperty()編譯現有工程的java文件
    2012-07-30 00:00 | DB Compare Tool
    你不能用ANT嗎?  回復  更多評論
      
    主站蜘蛛池模板: 中文在线免费观看| 精品特级一级毛片免费观看| 久久免费视频一区| 亚洲人成网站色在线入口| 美女羞羞视频免费网站| 午夜国产羞羞视频免费网站| 99亚洲男女激情在线观看| 全部免费国产潢色一级| 免费人成又黄又爽的视频在线电影| 国产免费av片在线无码免费看| 看亚洲a级一级毛片| 久久精品国产亚洲精品| 91视频免费网站| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久久久久亚洲Av无码精品专口 | 午夜两性色视频免费网站| 亚洲国产精品自在自线观看| 又大又硬又爽免费视频| 一级成人生活片免费看| 国产亚洲综合久久系列| 99免费观看视频| 亚洲日本在线电影| 亚洲成a人片在线观看久| 99久久成人国产精品免费| 亚洲视屏在线观看| 国产美女无遮挡免费视频网站| 国产V片在线播放免费无码 | 免费黄色电影在线观看| 亚洲最大福利视频| 亚洲国产人成中文幕一级二级| 大地资源在线资源免费观看| 中文无码亚洲精品字幕| 久久亚洲国产成人影院网站 | 成人性生免费视频| 国产精品小视频免费无限app| 亚洲视频在线观看免费视频| 四虎成人免费观看在线网址 | 亚洲日韩一区二区一无码| 亚洲性在线看高清h片| 最近免费中文字幕高清大全| 日韩欧美亚洲中文乱码|