1. 程式人生 > >DOS視窗(cmd)編譯執行java專案

DOS視窗(cmd)編譯執行java專案

剛工作,因為公司的要求,所以需要在DOS視窗執行java程式(專案部署在伺服器上,所以這個時候不可能再去使用eclipse了;哎~eclipse讓我忽略了很多基礎)。弄了很久,所以寫在部落格裡面以示鼓勵並方便後面的查詢。

我的JDK是1.7.0_51版本,前提是你的JAVA_HOME、path、classpath都已經設定好,這裡就不再累贅了。我的Union專案位於E:\java SE下


bin目錄下面也就是已經編譯好了,lib存放需要的jar包,com下是編譯好的class檔案(com/ximucredit/dio/share/*.class)。要執行肯定需要先知道javac和java這兩個命令。好了,開始說了。

執行的時候命令列位於bin目錄下,java -cp .;lib/* com.ximucredit.dio.share.Interface。-cp和-classpath一樣(有網友說是因為-classpath太長了,所以就用-cp代替;-ClassPath取首字母大寫就是-cp)

下面是總結:1、classpath的包名要一起跟在後面(com.ximucredit.dio.share包名,Interface類名)

     2、用了-cp或者-classpath之後需要.;不然會報錯(報錯的內容為找不到或無法載入主類),配置檔案也可以找到,在編譯的時候不需要.;(也是看到了一位網友說用了-cp會覆蓋掉你設定的環境變數classpath。)

   3、萬用字元不能這麼去使用,如:*.jar ;而是應該把所有的jar包放在同一個資料夾(lib下面),然後這麼去用lib/*

編譯(另外一個專案):

畫紅線的編譯是可以完成的;通過下面可以知道編譯不需要.;,包之間需要用/ 隔開;


通過下面可以知道-d可以設定生成的class檔案位於哪個資料夾下面,json位於test包下面所以生成的時候會把包一起生成;


區別:執行的時候需要,;表示當前路徑,編譯則不需要.;;執行時-cp可以有../(即改變當前路徑),只是有../沒有 .;會報錯;編譯的時候有../(改變當前路徑)可以沒有.;(因為classpath中的.;是找.class檔案);執行的時候類名需要和包名一起才可以執行,編譯的時候類名可以不和包名一起,可以位於包下編譯(和包一起編譯時用/)(下面測試lib位於E盤下)