Aaronlong31

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            12 Posts :: 3 Stories :: 17 Comments :: 0 Trackbacks

          2010年1月27日 #

          常見(jiàn)錯(cuò)誤號(hào)對(duì)照表

          MySQL error code SQLSTATE code Error message

          1011 HY000 Error on delete of '%s' (errn %d)
          1021 HY000 Disk full (%s); waiting for someone to free some space . . .
          1022 23000 Can't write; duplicate key in table '%s'
          1027 HY000 '%s' is locked against change
          1036 HY000 Table '%s' is read only
          1048 23000 Column '%s' cannot be null
          1062 23000 Duplicate entry '%s' for key %d
          1099 HY000 Table '%s' was locked with a READ lock and can't be updated
          1100 HY000 Table '%s' was not locked with LOCK TABLES
          1104 42000 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
          1106 42000 Incorrect parameters to procedure '%s'
          1114 HY000 The table '%s' is full
          1150 HY000 Delayed insert thread couldn't get requested lock for table %s
          1165 HY000 INSERT DELAYED can't be used with table '%s' because it is locked with LOCK TABLES
          1242 21000 Subquery returns more than 1 row
          1263 22004 Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld
          1264 22003 Out of range value adjusted for column '%s' at row %ld
          1265 1000 Data truncated for column '%s' at row %ld
          1312 0A000 SELECT in a stored program must have INTO
          1317 70100 Query execution was interrupted
          1319 42000 Undefined CONDITION: %s
          1325 24000 Cursor is already open
          1326 24000 Cursor is not open
          1328 HY000 Incorrect number of FETCH variables
          1329 2000 No data to FETCH
          1336 42000 USE is not allowed in a stored program
          1337 42000 Variable or condition declaration after cursor or handler declaration
          1338 42000 Cursor declaration after handler declaration
          1339 20000 Case not found for CASE statement
          1348 HY000 Column '%s' is not updatable
          1357 HY000 Can't drop a %s from within another stored routine
          1358 HY000 GOTO is not allowed in a stored program handler
          1362 HY000 Updating of %s row is not allowed in %s trigger
          1363 HY000 There is no %s row in %s trigger
          posted @ 2010-08-11 11:13 Aaronlong31 閱讀(853) | 評(píng)論 (0)編輯 收藏

          之前一個(gè)監(jiān)視應(yīng)用的好工具JavaMelody,功能十分齊全,這次介紹個(gè) 
          稍微小點(diǎn)的,專門為TOMCAT 而設(shè)計(jì)的。下面講解其用法: 

          1 下載: 
          http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip 
          2 解壓縮后,把probe.war放到TOMCAT的webapps下,設(shè)置server.xml 
          的context 
          3 設(shè)置用戶如下,在tomcat_user.xml中 
             vi /usr/local/tomcat/conf//tomcat-users.xml 

          <?xml version='1.0' encoding='utf-8'?> 
          <tomcat-users> 
                  <role rolename="manager"/> 
                  <role rolename="standard"/> 
                  <role rolename="tomcat"/> 
                  <role rolename="admin"/> 
                  <role rolename="role1"/> 
                  <user username="tomcat" password="tomcat" roles="tomcat"/> 
                  <user username="both" password="tomcat" roles="tomcat,role1"/> 
                  <user username="probe" password="probe" roles="admin,manager"/> 
                  <user username="role1" password="tomcat" roles="role1"/> 
          </tomcat-users> 

          4 設(shè)置環(huán)境變量,獲取服務(wù)器狀態(tài) 
          # vi /etc/profile 
          JAVA_OPTS=-Dcom.sun.management.jmxremote 
          export JAVA_OPTS 

          5 重啟動(dòng)服務(wù)器 
          6 輸入http://localhost/probe/,輸入用戶名和密碼 
          7 即可進(jìn)入,這里比較精彩的是對(duì)內(nèi)存的監(jiān)視,動(dòng)態(tài)顯示了JVM的內(nèi)存圖表
          posted @ 2010-08-09 12:51 Aaronlong31 閱讀(398) | 評(píng)論 (0)編輯 收藏

          設(shè)置每天8:50開(kāi)機(jī),要是9:15電腦還沒(méi)人使用.就自動(dòng)關(guān)機(jī).
          計(jì)算機(jī)啟動(dòng)時(shí)按“Delete”鍵進(jìn)入BIOS界面。
          在BIOS設(shè)置主界面中選擇“Power Management Setup”菜單,
          Resume By Alarm 值設(shè)成Enabled
          再在”Date (of Month) Alarm”和“Time (hh:mm:ss) Alarm”中設(shè)定開(kāi)機(jī)的日期和時(shí)間。
          如果把“Date”設(shè)為0,則默認(rèn)為每天定時(shí)開(kāi)機(jī)。
          設(shè)置好后按“F10“保存設(shè)置就可以了,機(jī)器會(huì)重新啟動(dòng),設(shè)置成功。
          自動(dòng)登錄
          單擊“開(kāi)始/運(yùn)行”,輸入“rundll32 netplwiz.dll,UsersRunDll”
          按回車鍵后彈出“用戶帳戶”窗口
          然后取消選定“要使用本機(jī),用戶必須輸入用戶名和密碼”選項(xiàng),單擊確定
          在彈出的對(duì)話框中輸入你想讓電腦每次自動(dòng)登錄的賬戶和密碼即可。
          自動(dòng)關(guān)機(jī)
          1.控制面板>管理工具>服務(wù)
          雙擊名稱列為 Task Scheduler 的記錄,把啟動(dòng)類型設(shè)為自動(dòng),再點(diǎn)啟動(dòng)按鈕,再保存.
          再?gòu)倪\(yùn)行中輸入
          at 9:15 /every:M,T,W,Th,F,S,Su shutdown -s -f -t 300 -c "快要停電了,取消關(guān)機(jī)命令shutdown -a"
          第天9:15 執(zhí)行關(guān)機(jī),有300秒的等待時(shí)間。
          posted @ 2010-08-09 12:45 Aaronlong31 閱讀(415) | 評(píng)論 (0)編輯 收藏

          1.修改linux的時(shí)間可以使用date指令

          在命令行輸入:

          date
           顯示當(dāng)前時(shí)間 Fri Aug  3 14:15:16 CST 2007

          date -s 
          按字符串方式修改時(shí)間
          可以只修改日期,不修改時(shí)間,輸入: date -s 2007-08-03
          只修改時(shí)間,輸入:date -s 14:15:00
          同時(shí)修改日期時(shí)間,注意要加雙引號(hào),日期與時(shí)間之間有一空格,輸入:date -s "2007-08-03 14:15:00"

          修改完后,記得輸入:clock -w 
          把系統(tǒng)時(shí)間寫(xiě)入CMOS

          2.Linux下啟動(dòng)/關(guān)閉/重啟Mysql
          /etc/init.d/mysql   start|stop|restart|reload|force-reload
          posted @ 2010-08-06 10:02 Aaronlong31 閱讀(245) | 評(píng)論 (0)編輯 收藏

          使用PowerDesigner設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),要寫(xiě)很多comment讓人看,生成SQL文件時(shí)也包含了這些comment,但是用這SQL文件生成數(shù)據(jù)庫(kù)時(shí),經(jīng)常會(huì)因?yàn)閏omment太長(zhǎng)而失敗,在文件中一點(diǎn)一點(diǎn)的刪除comment未免太麻煩。這里有個(gè)方法可以讓PowerDesigner生成SQL文件時(shí)不包含comment。(我使用的是mysql,估計(jì)其他的也差不多。)


          選擇Edit current DBMS,依次點(diǎn)開(kāi)script -> objects -> table -> create ,在value中將最后的[comment = "%TLABL%"]刪除,這個(gè)是去掉創(chuàng)建表的comment。
          script -> objects -> column -> create,在value中將最后的[ comment %.q:@OBJTLABL%]去掉,這個(gè)是去掉column的comment的。
          這樣生成SQL文件時(shí)就不會(huì)產(chǎn)生comment了。

          另外還有一點(diǎn),如果數(shù)據(jù)庫(kù)設(shè)計(jì)中有index,生成SQL文件時(shí)會(huì)把drop index 放到文件的最前面,當(dāng)?shù)谝淮紊蓴?shù)據(jù)庫(kù)時(shí),由于沒(méi)有index所以會(huì)報(bào)錯(cuò),因此要把最前面的drop index刪掉,但手動(dòng)刪除還是麻煩,可以這樣:
          CTRL + G,打開(kāi)Database Generation,選擇options選項(xiàng)卡,選擇index,把右邊的Drop index前的√去掉就行了
          posted @ 2010-07-18 10:57 Aaronlong31 閱讀(4651) | 評(píng)論 (0)編輯 收藏

           

          要用powerdesigner做數(shù)據(jù)庫(kù)表設(shè)計(jì), 最后發(fā)現(xiàn)導(dǎo)出sql腳本就出現(xiàn)了問(wèn)題, 首先是字段都帶上了雙引號(hào), 而且還總是報(bào)錯(cuò)字段名過(guò)長(zhǎng)。
          另外還發(fā)現(xiàn)column屬性,Code才是最終產(chǎn)生的Table Name ,而Name就有點(diǎn)像是描述了。
          在 Database里選擇你的數(shù)據(jù)庫(kù)然后在 DBMS里面選擇(注意看清楚PDM的引用模式是哪個(gè)數(shù)據(jù)庫(kù))
          Script->Sql->Format->EnableOwnerPrefix value=Yes;

          Script->Sql->Format->CaseSensitivityUsingQuote=No;

          這時(shí)再導(dǎo)出 表的名稱就正常了

          PowerDesigner9 移植到 PowerDesigner12 的問(wèn)題:

          默認(rèn)長(zhǎng)度的問(wèn)題,我在PowerDesigner9導(dǎo)出沒(méi)問(wèn)題的數(shù)據(jù)庫(kù)腳本拿到PowerDesigner12導(dǎo)出出現(xiàn)如下問(wèn)題:

          Column constraint name maximum length is limited to 15 characters

          在使用PD12時(shí)出現(xiàn)諸如以下錯(cuò)誤:

          Reference constraint name maximum length is limited to 7 characters
          Key constraint name maximum length is limited to 7 characters
          Table code maximum length
          Column code maximum length
          ……

          導(dǎo)致生成建表SQL時(shí)通不過(guò),細(xì)究原因原來(lái)是默認(rèn)設(shè)置的問(wèn)題,改下就可以了:)

          調(diào)整以下參數(shù):
          Database=>Edit current DBMS   數(shù)據(jù)庫(kù)類型::Script\Objects\MaxConstLen value=>255
          Database=>Edit current DBMS   數(shù)據(jù)庫(kù)類型::Script\Objects\Table\Maxlen value=>255
          Database=>Edit current DBMS   數(shù)據(jù)庫(kù)類型::Script\Objects\Column\Maxlen value=>255



          再說(shuō)說(shuō)如何在 PowerDesigner12里創(chuàng)建帶導(dǎo)出分區(qū)的腳本

          默認(rèn)情況下分區(qū)設(shè)置是隱藏的 所以要選種該表 然后再點(diǎn)左下腳的More>>

          選擇Physical Options 這個(gè)選項(xiàng) 這里可以添加表空間和索引空間 我習(xí)慣直接設(shè)置分區(qū)SQL語(yǔ)句 這樣避免了很多垃圾語(yǔ)句生成

          選擇 SQL 然后創(chuàng)建分區(qū)

            partition by list
          ( data_part  )
          ( partition Pd00
              values ( '0'  ) )

          就OK了 去Partitions選項(xiàng)里可以看到這一列分區(qū)效果

          設(shè)置索引默認(rèn)空間:

          選擇KEY選項(xiàng)或者Index選項(xiàng) 直接雙擊該索引 然后設(shè)置Physical Options

          直接輸入SQL創(chuàng)建默認(rèn)索引指向表空間   using index  tablespace index_emcspace

          PowerDesigner功能強(qiáng)大 完全可以維護(hù)大部分的數(shù)據(jù)庫(kù)建模

          現(xiàn)在在Oracle數(shù)據(jù)庫(kù)維護(hù)有些問(wèn)題 創(chuàng)建數(shù)據(jù)庫(kù)的Package 或者 Types 、Directories、Jobs等 沒(méi)辦法維護(hù)進(jìn)去。

          ------------------------------------------------------------------------------------------------------
          因?yàn)槲蚁螺d的pd11是試用版,功能受限, index導(dǎo)出總是報(bào)錯(cuò), 換用了pd12的破解版, 沒(méi)有問(wèn)題了。
          而且改object最大長(zhǎng)度設(shè)置,只要設(shè)定一個(gè)全局的,方便一些:
          PGSQL73::Script\Objects\MaxConstLen
          value=>255
          PGSQL73::Script\Objects\Table\Maxlen
          value=>255

          另外發(fā)現(xiàn)pd12也沒(méi)有表長(zhǎng)度長(zhǎng)一點(diǎn)就報(bào)錯(cuò)的問(wèn)題, 不用像前面那樣改長(zhǎng)度了。
          posted @ 2010-07-04 14:56 Aaronlong31 閱讀(1494) | 評(píng)論 (0)編輯 收藏

          錯(cuò)誤信息:出現(xiàn)java.lang.NoSuchMethodException setUser([LJava.lang.String;)異常

          struts2中的UserAction:
           1 public class UserAction{
           2 private User user;
           3 private String name;
           4 public void setName(String name){
           5 this.name = name;
           6 }
           7 public String getName(){
           8 return name;
           9 }
          10 public User getUser() {
          11       return user;
          12 }
          13 
          14 
          15 public void setUser(User user) {
          16       this.user = user;
          17 }
          18 
          19 public String execute(){
          20      System.println(user.getUsername);
          21 }
          22 
          23 }
          24 
          User就兩個(gè)屬性:username/password.
          這個(gè)是開(kāi)始的struts.xml中的代碼:
          <package name="json" extends="json-default">  
               
          <action name="save" class="com.aaron.example.action.UserAction">  
              
          <result type="json"></result>  
               
          </action>  
          </package>  
          這個(gè)是jQuery代碼:
          $(function(){   
               
          var json = {"user":{"username":"zhangsan","password":"123"}};//方法1   
               //json = {"name":"zhanglong"};// 方法2    
               //json = {"user.username":"zhangsan","user.password":123};//方法3   
          }
          ); 
           用方法1會(huì)出項(xiàng)上述錯(cuò)誤,方法2和方法3都可行。

          原因:
          方法2成功的原因是{"name":"zhanglong"}傳遞的是一個(gè)名值對(duì),就像是request的parameter.
          方法3成功也是一樣的,struts2的OGNL會(huì)識(shí)別user.username,并把它對(duì)應(yīng)的值"zhangsan"存放到user的username屬性上
          方法1失敗是因?yàn)閭鞯拿祵?duì)是:"user":"{'username':'zhangsan','password','123'}",這樣struts就會(huì)你要將"{'username':'zhangsan','password','123'}"這個(gè)字符串賦值給user對(duì)象,它就會(huì)調(diào)用setUser(String user)方法(或者是setUser(String[] user)),由于UserAction中沒(méi)有這個(gè)方法,所以會(huì)報(bào)錯(cuò)。

          解決方法:
          根據(jù)jsonplugin官方的文檔,頁(yè)面?zhèn)魅氲恼?qǐng)求的content-type要是application/json,否則json的interceptor不會(huì)幫你將json轉(zhuǎn)換為java對(duì)象,這里他忘了說(shuō)明一點(diǎn),jsonplugin中只是定義了json的interceptor,并沒(méi)有將其放入到package的攔截器棧中,還需要我們自己放入自己的package中。如下:
          1 <interceptors>
          2     <interceptor-stack name="myDefaultStack">
          3         <interceptor-ref name="json"/>
          4         <interceptor-ref name="defaultStack"/>
          5     </interceptor-stack>
          6 </interceptors>
          7     
          8 <default-interceptor-ref name="myDefaultStack"/>
          還要設(shè)置jquery的ajax請(qǐng)求的content-type和傳遞類型為"POST":
          1 $.ajax({
          2     type:"POST",
          3     data:jsonText,
          4     url:"save.action?number=" + Math.random(),
          5     contentType:"application/json"
          6 });
          其中jsonText如下:
          1 var jsonText = "{'user':{
          2         'username':'zhangsan',
          3         'password':'123'
          4     }
          5 }"
          注意,整個(gè)jsonText是個(gè)字符串,其中的名值對(duì)的名要用''包起來(lái),否則會(huì)報(bào)異常,指出json格式不對(duì)。
          只有這樣做了后,json攔截器才會(huì)幫你做轉(zhuǎn)換。

          還有,如果UserAction中有個(gè)userService的話,需要設(shè)置action的result的param:
          1 <result type="json">
          2     <param name="excludeProperties">
          3              userService
          4     </param>
          5 </result>
          這樣就不會(huì)將userService進(jìn)行序列化了,或者可以將action中的getUserService()方法去掉。

          如果user對(duì)象是從hibernate獲取的,可能得到的是一個(gè)代理對(duì)象,對(duì)其進(jìn)行json序列化時(shí)會(huì)出錯(cuò)。解決辦法是為User對(duì)象加上@Proxy(lazy=false)注解。
          posted @ 2010-06-29 15:10 Aaronlong31 閱讀(12638) | 評(píng)論 (17)編輯 收藏

          Ant


          ?
           當(dāng)一個(gè)代碼項(xiàng)目大了以后,每次重新編譯,打包,測(cè)試等都會(huì)變得非常復(fù)雜而且重復(fù),因此c語(yǔ)言中有make腳本來(lái)幫助這些工作的批量完成。在Java 中應(yīng)用是平臺(tái)無(wú)關(guān)性的,當(dāng)然不會(huì)用平臺(tái)相關(guān)的make腳本來(lái)完成這些批處理任務(wù)了,ANT本身就是這樣一個(gè)流程腳本引擎,用于自動(dòng)化調(diào)用程序完成項(xiàng)目的編譯,打包,測(cè)試等。除了基于JAVA是平臺(tái)無(wú)關(guān)的外,腳本的格式是基于XML的,比make腳本來(lái)說(shuō)還要好維護(hù)一些。
            每個(gè)ant腳本(缺省叫build.xml)中設(shè)置了一系列任務(wù)(target):比如對(duì)于一個(gè)一般的項(xiàng)目可能需要有以下任務(wù)。
            * 任務(wù)1:usage 打印本腳本的幫助信息(缺省)
            * 任務(wù)2:clean <-- init 清空初始化環(huán)境
            * 任務(wù)3:javadoc <-- build <-- init 生成JAVADOC
            * 任務(wù)4:jar <-- build <-- init 生成JAR
            * 任務(wù)5:all <-- jar + javadoc <-- build <-- init 完成以上所有任務(wù):jar javadoc
            而多個(gè)任務(wù)之間往往又包含了一定了依賴關(guān)系:比如把整個(gè)應(yīng)用打包任務(wù)(jar)的這個(gè)依賴于編譯任務(wù)(build),而編譯任務(wù)又依賴于整個(gè)環(huán)境初始化任務(wù)(init)等。
            注:我看到很多項(xiàng)目的ant腳本中的命名基本上都是一致的,比如:編譯一般叫build或者compile;打包一般叫jar或war;生成文檔一般命名為 javadoc或javadocs;執(zhí)行全部任務(wù)all。在每個(gè)任務(wù)的中,ANT會(huì)根據(jù)配置調(diào)用一些外部應(yīng)用并配以相應(yīng)參數(shù)執(zhí)行。雖然ANT可調(diào)用的外部應(yīng)用種類非常豐富,但其實(shí)最常用的就2,3個(gè):比如javac javadoc jar等。
          ?
          ?
          Ant 開(kāi)發(fā)
            Ant的構(gòu)建文件
            當(dāng)開(kāi)始一個(gè)新的項(xiàng)目時(shí),首先應(yīng)該編寫(xiě)Ant構(gòu)建文件。構(gòu)建文件定義了構(gòu)建過(guò)程,并被團(tuán)隊(duì)開(kāi)發(fā)中每個(gè)人使用。Ant構(gòu)建文件默認(rèn)命名為build.xml,也可以取其他的名字。只不過(guò)在運(yùn)行的時(shí)候把這個(gè)命名當(dāng)作參數(shù)傳給Ant。構(gòu)建文件可以放在任何的位置。一般做法是放在項(xiàng)目頂層目錄中,這樣可以保持項(xiàng)目的簡(jiǎn)潔和清晰。下面是一個(gè)典型的項(xiàng)目層次結(jié)構(gòu)。
            (1) src存放文件。
            (2) class存放編譯后的文件。
            (3) lib存放第三方JAR包。
            (4) dist存放打包,發(fā)布以后的代碼。
            Ant構(gòu)建文件是XML文件。每個(gè)構(gòu)建文件定義一個(gè)唯一的項(xiàng)目(Project元素)。每個(gè)項(xiàng)目下可以定義很多目標(biāo)(target元素),這些目標(biāo)之間可以有依賴關(guān)系。當(dāng)執(zhí)行這類目標(biāo)時(shí),需要執(zhí)行他們所依賴的目標(biāo)。
            每個(gè)目標(biāo)中可以定義多個(gè)任務(wù),目標(biāo)中還定義了所要執(zhí)行的任務(wù)序列。Ant在構(gòu)建目標(biāo)時(shí)必須調(diào)用所定義的任務(wù)。任務(wù)定義了Ant實(shí)際執(zhí)行的命令。Ant中的任務(wù)可以為3類。
            (1) 核心任務(wù)。核心任務(wù)是Ant自帶的任務(wù)。
            (2) 可選任務(wù)。可選任務(wù)實(shí)來(lái)自第三方的任務(wù),因此需要一個(gè)附加的JAR文件。
            (3) 用戶自定義的任務(wù)。用戶自定義的任務(wù)實(shí)用戶自己開(kāi)發(fā)的任務(wù)。
            1.<project>標(biāo)簽
            每個(gè)構(gòu)建文件對(duì)應(yīng)一個(gè)項(xiàng)目。<project>標(biāo)簽時(shí)構(gòu)建文件的根標(biāo)簽。它可以有多個(gè)內(nèi)在屬性,就如代碼中所示,其各個(gè)屬性的含義分別如下。
            (1) default表示默認(rèn)的運(yùn)行目標(biāo),這個(gè)屬性是必須的。
            (2) basedir表示項(xiàng)目的基準(zhǔn)目錄。
            (3) name表示項(xiàng)目名。
            (4) description表示項(xiàng)目的描述。
            每個(gè)構(gòu)建文件都對(duì)應(yīng)于一個(gè)項(xiàng)目,但是大型項(xiàng)目經(jīng)常包含大量的子項(xiàng)目,每一個(gè)子項(xiàng)目都可以有自己的構(gòu)建文件。
            2.<target>標(biāo)簽
            一個(gè)項(xiàng)目標(biāo)簽下可以有一個(gè)或多個(gè)target標(biāo)簽。一個(gè)target標(biāo)簽可以依賴其他的target標(biāo)簽。
            例如,有一個(gè)target用于編譯程序,另一個(gè)target用于聲稱可執(zhí)行文件。在生成可執(zhí)行文件之前必須先編譯該文件,因策可執(zhí)行文件的target依賴于編譯程序的target。Target的所有屬性如下。
            (1).name表示標(biāo)明,這個(gè)屬性是必須的。
            (2).depends表示依賴的目標(biāo)。
            (3)if表示僅當(dāng)屬性設(shè)置時(shí)才執(zhí)行。
            (4)unless表示當(dāng)屬性沒(méi)有設(shè)置時(shí)才執(zhí)行。
            (5)description表示項(xiàng)目的描述。
            Ant的depends屬性指定了target的執(zhí)行順序。Ant會(huì)依照depends屬性中target出現(xiàn)順序依次執(zhí)行每個(gè)target。在執(zhí)行之前,首先需要執(zhí)行它所依賴的target。程序中的名為run的target的depends屬性compile,而名為compile的target的depends屬性是prepare,所以這幾個(gè)target執(zhí)行的順序是prepare->compile->run。
            一個(gè)target只能被執(zhí)行一次,即使有多個(gè)target依賴于它。如果沒(méi)有if或unless屬性,target總會(huì)被執(zhí)行。
            3.<mkdir>標(biāo)簽
            該標(biāo)簽用于創(chuàng)建一個(gè)目錄,它有一個(gè)屬性dir用來(lái)指定所創(chuàng)建的目錄名,其代碼如下:
            <mkdir dir=”${class.root}”/>
            通過(guò)以上代碼就創(chuàng)建了一個(gè)目錄,這個(gè)目錄已經(jīng)被前面的property標(biāo)簽所指定。
            4<jar>標(biāo)簽
            該標(biāo)簽用來(lái)生成一個(gè)JAR文件,其屬性如下。
            (1) destfile表示JAR文件名。
            (2) basedir表示被歸檔的文件名。
            (3) includes表示別歸檔的文件模式。
            (4) exchudes表示被排除的文件模式。
            5.<javac標(biāo)簽>
            該標(biāo)簽用于編譯一個(gè)或一組java文件,其屬性如下。
            (1).srcdir表示源程序的目錄。
            (2).destdir表示class文件的輸出目錄。
            (3).include表示被編譯的文件的模式。
            (4).excludes表示被排除的文件的模式。
            (5).classpath表示所使用的類路徑。
            (6).debug表示包含的調(diào)試信息。
            (7).optimize表示是否使用優(yōu)化。
            (8).verbose 表示提供詳細(xì)的輸出信息。
            (9).fileonerror表示當(dāng)碰到錯(cuò)誤就自動(dòng)停止。
            6.<java>標(biāo)簽
            該標(biāo)簽用來(lái)執(zhí)行編譯生成的.class文件,其屬性如下。
            (1).classname 表示將執(zhí)行的類名。
            (2).jar表示包含該類的JAR文件名。
            (3).classpath所表示用到的類路徑。
            (4).fork表示在一個(gè)新的虛擬機(jī)中運(yùn)行該類。
            (5).failonerror表示當(dāng)出現(xiàn)錯(cuò)誤時(shí)自動(dòng)停止。
            (6).output 表示輸出文件。
            (7).append表示追加或者覆蓋默認(rèn)文件。
            7.<delete>標(biāo)簽
            該標(biāo)簽用于刪除一個(gè)文件或一組文件,其屬性如下。
            (1)/file表示要?jiǎng)h除的文件。
            (2).dir表示要?jiǎng)h除的目錄。
            (3).includeEmptyDirs 表示指定是否要?jiǎng)h除空目錄,默認(rèn)值是刪除。
            (4).failonerror 表示指定當(dāng)碰到錯(cuò)誤是否停止,默認(rèn)值是自動(dòng)停止。
            (5).verbose表示指定是否列出所刪除的文件,默認(rèn)值為不列出。
            8.<copy>標(biāo)簽
            該標(biāo)簽用于文件或文件集的拷貝,其屬性如下。
            (1).file 表示源文件。
            (2).tofile 表示目標(biāo)文件。
            (3).todir 表示目標(biāo)目錄。
            (4).overwrite 表示指定是否覆蓋目標(biāo)文件,默認(rèn)值是不覆蓋。
            (5).includeEmptyDirs 表示制定是否拷貝空目錄,默認(rèn)值為拷貝。
            (6).failonerror 表示指定如目標(biāo)沒(méi)有發(fā)現(xiàn)是否自動(dòng)停止,默認(rèn)值是停止。
            (7).verbose 表示制定是否顯示詳細(xì)信息,默認(rèn)值不顯示。
          ?
          ?
           Ant 的安裝
            解包后在系統(tǒng)可執(zhí)行路徑中加入指向ant的bin的路徑就可以了,比如可以在GNU/Linux上把以下配置加入/etc/profile中:
            export ANT_HOME=/home/ant
            export JAVA_HOME=/usr/java/j2sdk1.4.1
            export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
            Windows 下的安裝:
            下載后解壓到某個(gè)目錄我這里以D:\apache-ant-1.7.1為例子:
            添加path全局環(huán)境變量:D:\apache-ant-1.7.1\bin
            這樣在command line就可以運(yùn)行ant命令了
            測(cè)試:運(yùn)行->cmd/command->ant 如果沒(méi)有安裝成功則回報(bào)找不到這個(gè)命令,安裝成功會(huì)有相關(guān)的提示信息顯示。
            這樣執(zhí)行ant 后,如果不指定配置文件ant會(huì)缺省找build.xml這個(gè)配置文件,并根據(jù)配置文件執(zhí)行任務(wù),缺省的任務(wù)設(shè)置可以指向最常用的任務(wù),比如: build,或指向打印幫助信息:usage,告訴用戶有那些腳本選項(xiàng)可以使用。
            Ant 的運(yùn)行
            安裝好Ant并且配置好路徑之后,在命令行中切換到構(gòu)建文件的目錄,輸入Ant命令就可以運(yùn)行Ant.若沒(méi)有指定任何參數(shù),Ant會(huì)在當(dāng)前目錄下查詢build.xml文件。如果找到了就用該文件作為構(gòu)建文件。如果使用了 –find 選項(xiàng),Ant 就會(huì)在上級(jí)目錄中找構(gòu)建文件,直至到達(dá)文件系統(tǒng)的根目錄。如果構(gòu)建文件的名字不是build.xml ,則Ant運(yùn)行的時(shí)候就可以使用 –buildfile file,這里file 指定了要使用的構(gòu)建文件的名稱,示例如下:
            Ant如下說(shuō)明了表示當(dāng)前目錄的構(gòu)建文件為build.xml 運(yùn)行 ant 執(zhí)行默認(rèn)的目標(biāo)。
            Ant –buildfile test.xml
            使用當(dāng)前目錄下的test.xml 文件運(yùn)行Ant ,執(zhí)行默認(rèn)的目標(biāo)
          posted @ 2010-02-04 09:55 Aaronlong31 閱讀(368) | 評(píng)論 (0)編輯 收藏

          ?1 -- 以下命令均在cmd中運(yùn)行
          ?2
          ?3 mysqldump? - uroot? - p123456? - d?webmeeting? > C:\\test.sql?
          ?4 -- 將數(shù)據(jù)庫(kù)webmeeting中的表結(jié)構(gòu)導(dǎo)出到C:\\test.sql中
          ?5
          ?6 mysqldump? - uroot? - p123456?webmeeting? > 123 .sql
          ?7 ? -- 將數(shù)據(jù)庫(kù)中所有數(shù)據(jù)導(dǎo)出到123.sql中
          ?8
          ?9 mysql? - uroot? - p123456?webmeeting? < c:\\ 123 .sql
          10 ? -- 將123.sql中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)webmeeting中
          posted @ 2010-01-27 14:41 Aaronlong31 閱讀(395) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 庆安县| 太康县| 新宁县| 安溪县| 温宿县| 湘乡市| 凉城县| 兰州市| 应城市| 沙坪坝区| 新巴尔虎左旗| 紫云| 怀来县| 吴桥县| 利津县| 乐平市| 吉木乃县| 融水| 呼图壁县| 云南省| 乌恰县| 宁南县| 洪江市| 方正县| 鄂托克前旗| 邳州市| 台东县| 宣恩县| 安泽县| 井研县| 肥东县| 克拉玛依市| 陆河县| 林西县| 滨州市| 昭通市| 乐都县| 鄱阳县| 巩义市| 得荣县| 普定县|