天天看點

開發第一個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項目的問題總結

這裡遇到了一個問題:

就是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回車就會有幫助提示,基本就明白怎麼用了。如圖

開發第一個java項目的問題總結

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

開發第一個java項目的問題總結

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

開發第一個java項目的問題總結

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

開發第一個java項目的問題總結

運作jar包。

或者這樣寫:

開發第一個java項目的問題總結

運作含main的java。

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