1. 程式人生 > >開發第一個java專案的問題總結

開發第一個java專案的問題總結

只是一個簡單的java專案(第一次把java 程式碼生成個像樣的專案)

一、介面

首先想使程式有個介面,不用太好看。然後就用到了一些基礎的swing元件物件:JFrame、JTable、JPanel、JMenuBar、JMenu、JMenuItem;swing佈局物件:GridLayout、FlowLayout;以及一些方法:addWindowListener、setMnemonic、setActionCommand、addActionListener。介面比較簡單,這裡只遇到一個問題:元件JMenu新增ActionListener事件,點選無效。能夠新增,不報錯,就是無效果。這個元件有一個MenuListener事件,這個新增後可以。

二、java專案中使用文字格式的配置檔案,如.ini檔案。

這裡java有一個類可以操作這樣的檔案:Properties。它其中有一個獲取檔案的方法是properties.load();需要一個引數,引數可以是inputstrean或是Reader。隨後就可以用方法properties.getProperty(key)獲取儲存的資料了。資料格式一般是這樣的:

這裡遇到了一個問題:

就是java找檔案時有兩個方法:一是getClass().getResource("/configuration/config.ini");

二是getClass().getResourceAsStream("/configuration/config.ini");第一個返回的是一個URL物件,在用此物件獲得檔案路徑,進而獲得檔案流。第二個返回的直接就是inputstream流。這裡的問題就是,第一種方法如果把專案打成jar包執行,程式就會找不到ini檔案。因為打成jar包後,程式在找檔案時的路徑會是.jar!/configuration/config.ini。會去jar包下找,並且路徑上多一個歎號。點選

這裡是我查的論壇上討論的。

三使用JNative呼叫dll檔案。

因為專案使用了dll檔案,所以就用JNative呼叫。但是執行時總是報錯:java.lang.IllegalStateException: JNative library not loaded, sorry !網上查後,說是JNative.jar包只能在32位系統可用,64位系統就會報錯。我在一臺32系統機器上確實可以。

四log日誌記錄。

我只是想簡單實現少量記錄,所以就使用自帶的Logger類。這裡主要的幾個類或方法是:Logger.getLogger(name)、new FileHandler(path,true)、.setFormatter(new Formatter())。其中預設控制器FileHandler可以把日誌記錄到文字檔案中。path是檔案路徑,第二個引數若是true,就會在原有檔案中續寫。如果是false會覆蓋先前的記錄的。

方法setFormatter是設定日誌記錄的格式的。日誌還有日誌級別知識。部落格連結點選開啟連結。另有一個log4j使用的部落格點選開啟連結

五後來想在cmd中使用命令列打jar包。

就牽著出了jar的一些命令以及.bat檔案使用的一些知識。

調出cmd介面後,輸入jar -help回車就會有幫助提示,基本就明白怎麼用了。如圖

這裡問題是:這樣直接打的jar包中的/META-INF/MANIFEST.MF檔案中只有兩行資料如:

這樣你要是想執行包中的main方法是找不到的,這個檔案需要自己手動新增一些資料如:Main-Class: 主方法類名。還有其他資料部落格點選開啟連結。主要要注意的是,每個資料寫時不要忘了冒號“:”後面要有一個空格,不然就會出現這樣的錯誤:


想建一個.bat檔案啟動java程式。可以建立一個.bat字尾的文字文件,然後這樣寫:

執行jar包。

或者這樣寫:

執行含main的java。

bat檔案知識這有個介紹的挺好的點選開啟連結