<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那么簡(jiǎn)單!
    posts - 96,comments - 52,trackbacks - 0

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


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

    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 運(yùn)行時(shí)環(huán)境版本

    java.vendor

    Java 運(yùn)行時(shí)環(huán)境供應(yīng)商

    java.vendor.url

    Java 供應(yīng)商的 URL

    java.home

    Java 安裝目錄

    java.vm.specification.version

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

    java.vm.specification.vendor

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

    java.vm.specification.name

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

    java.vm.version

    Java 虛擬機(jī)實(shí)現(xiàn)版本

    java.vm.vendor

    Java 虛擬機(jī)實(shí)現(xiàn)供應(yīng)商

    java.vm.name

    Java 虛擬機(jī)實(shí)現(xiàn)名稱

    java.specification.version

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

    java.specification.vendor

    Java 運(yùn)行時(shí)環(huán)境規(guī)范供應(yīng)商

    java.specification.name

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

    java.class.version

    Java 類格式版本號(hào)

    java.class.path

    Java 類路徑

    java.library.path

    加載庫(kù)時(shí)搜索的路徑列表

    java.io.tmpdir

    默認(rèn)的臨時(shí)文件路徑

    java.compiler

    要使用的 JIT 編譯器的名稱

    java.ext.dirs

    一個(gè)或多個(gè)擴(kuò)展目錄的路徑

    os.name

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

    os.arch

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

    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

    用戶的當(dāng)前工作目錄

    本文所提供的方法解決了使用JAVA動(dòng)態(tài)編譯現(xiàn)有工程中的源文件的簡(jiǎn)便方法,順便說(shuō)一下有空可以去www.modaotea.com 喝茶,老板人不錯(cuò),對(duì)茶這塊很專業(yè),不像我這種苦逼的程序員,無(wú)聊透頂?。?br />文章原創(chuàng),轉(zhuǎn)載請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者

    posted on 2012-07-24 23:44 零全零美 閱讀(1524) 評(píng)論(1)  編輯  收藏 所屬分類: JavaScriptjbpm 、PL/SQL正則表達(dá)式 、oracleubuntu 、tomcatapache組件 、設(shè)計(jì)模式安全相關(guān) 、SEO

    FeedBack:
    # re: [原創(chuàng)]巧用System.getProperty()編譯現(xiàn)有工程的java文件
    2012-07-30 00:00 | DB Compare Tool
    你不能用ANT嗎?  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 国产精品亚洲а∨无码播放不卡| 国产精品1024永久免费视频| 久久国产亚洲精品| 亚洲AV日韩AV天堂一区二区三区| 无码国产亚洲日韩国精品视频一区二区三区| 色猫咪免费人成网站在线观看| 一级做a爰全过程免费视频毛片 | 成人一区二区免费视频| 亚洲变态另类一区二区三区| 亚洲另类视频在线观看| 精品日韩亚洲AV无码 | 中文字幕无码免费久久9一区9| 亚洲av日韩专区在线观看| 中文字幕无码精品亚洲资源网久久 | 亚洲高清中文字幕综合网| 国产亚洲精品岁国产微拍精品| 亚洲国产成人久久一区WWW| 免费鲁丝片一级观看| 免费做爰猛烈吃奶摸视频在线观看| 久久永久免费人妻精品下载| a级成人毛片免费视频高清| 成人午夜免费视频| 日本一区二区在线免费观看 | 日本免费观看网站| 在线观看免费宅男视频| 最近中文字幕mv免费高清电影 | 亚洲人成色在线观看| 在线a亚洲老鸭窝天堂av高清| 亚洲一本一道一区二区三区| 国产亚洲精品bv在线观看| 精品亚洲成在人线AV无码| 亚洲伊人久久大香线蕉结合| 亚洲avav天堂av在线网爱情| 亚洲依依成人精品| 国产精品亚洲一区二区麻豆| 亚洲砖码砖专无区2023| 亚洲乱妇老熟女爽到高潮的片| 亚洲av日韩av永久无码电影| 狼色精品人妻在线视频免费| 一级毛片免费播放试看60分钟| 皇色在线免费视频|