<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

        由于開發(fā)www.website371.comwww.modaotea.com 兩個網站時使用的框架是自己寫的,其中有一個工具是模擬hibernate的思路,動態(tài)生成對象關系映射!中間利用freemarker生成.java類!但是始終存在一個很大的問題,就是生成的.java文件,沒有辦法直接編譯,當然最好的結果當然是自動編譯后能達成JAR包,直接放在工程里!
        研究好了半天,終于找到一種解決方案,既然是用JAVA生成.java文件自動編譯并打成JAR包,
    那第一步自然就是用JAVA執(zhí)行CMD命令了(注意多個命令之間要用“&&”隔開哦,在這個問題上浪費了我很多時間!)
    第二步:利用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 運行時環(huán)境版本

    java.vendor

    Java 運行時環(huán)境供應商

    java.vendor.url

    Java 供應商的 URL

    java.home

    Java 安裝目錄

    java.vm.specification.version

    Java 虛擬機規(guī)范版本

    java.vm.specification.vendor

    Java 虛擬機規(guī)范供應商

    java.vm.specification.name

    Java 虛擬機規(guī)范名稱

    java.vm.version

    Java 虛擬機實現(xiàn)版本

    java.vm.vendor

    Java 虛擬機實現(xiàn)供應商

    java.vm.name

    Java 虛擬機實現(xiàn)名稱

    java.specification.version

    Java 運行時環(huán)境規(guī)范版本

    java.specification.vendor

    Java 運行時環(huán)境規(guī)范供應商

    java.specification.name

    Java 運行時環(huán)境規(guī)范名稱

    java.class.version

    Java 類格式版本號

    java.class.path

    Java 類路徑

    java.library.path

    加載庫時搜索的路徑列表

    java.io.tmpdir

    默認的臨時文件路徑

    java.compiler

    要使用的 JIT 編譯器的名稱

    java.ext.dirs

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

    os.name

    操作系統(tǒng)的名稱

    os.arch

    操作系統(tǒng)的架構

    os.version

    操作系統(tǒng)的版本

    file.separator

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

    path.separator

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

    line.separator

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

    user.name

    用戶的賬戶名稱

    user.home

    用戶的主目錄

    user.dir

    用戶的當前工作目錄

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

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

    FeedBack:
    # re: [原創(chuàng)]巧用System.getProperty()編譯現(xiàn)有工程的java文件
    2012-07-30 00:00 | DB Compare Tool
    你不能用ANT嗎?  回復  更多評論
      
    主站蜘蛛池模板: 亚洲精品成人无码中文毛片不卡| 大学生a级毛片免费观看 | 亚洲春黄在线观看| 91精品免费不卡在线观看| 亚洲av无码一区二区三区乱子伦| 中文字幕免费在线看线人动作大片 | 亚洲成a人片毛片在线| 最近中文字幕mv免费高清视频8| 666精品国产精品亚洲| 91高清免费国产自产| 亚洲avav天堂av在线网爱情| 91手机看片国产永久免费| 亚洲中文无码a∨在线观看| 又粗又大又黑又长的免费视频| 亚洲伦理中文字幕| 男男AV纯肉无码免费播放无码| 鲁死你资源站亚洲av| 亚洲 综合 国产 欧洲 丝袜| 二区久久国产乱子伦免费精品| 亚洲AV无码成人精品区天堂| 69视频免费观看l| 亚洲性无码一区二区三区| 又大又硬又爽免费视频| a级毛片毛片免费观看久潮喷| 亚洲国产精品热久久| 国产精品视频永久免费播放| 99亚洲乱人伦aⅴ精品| 亚洲日韩激情无码一区| 1000部拍拍拍18免费网站| 亚洲色偷偷色噜噜狠狠99| 久久久久亚洲AV成人网| 99久热只有精品视频免费观看17| 天堂亚洲国产中文在线| 亚洲片一区二区三区| 2022久久国产精品免费热麻豆| 亚洲AV永久无码精品网站在线观看| 五月婷婷亚洲综合| 2021在线永久免费视频| 十八禁的黄污污免费网站| 亚洲精品中文字幕乱码影院| 国产精品99久久免费|