1. 程式人生 > >淺析java的Java-Build-path與maven的Java-Build-path

淺析java的Java-Build-path與maven的Java-Build-path

system 右鍵 自動加載 pri forname pub nbsp stat img

1.Java Build path在哪

在項目鼠標右鍵的 properties下,或者在Window的properties的java下

2.其中有兩個選項project和folder

project:以項目為單位

folder:以文件夾為單位,其中有兩個可填寫的地方

source folder name :構建搜尋的目錄 src

default output folder或者是output folder name:編譯後的輸出目錄 bin

3.java的構建路徑

在src下搜尋,在src下的文件夾都默認為包,編譯後會在該項目下新建一個bin目錄,完全復制於src下的編譯後的所有文件,會自動的編譯。

4.maven的文件格式

source folder name :構建搜尋的目錄

技術分享圖片

default output folder或者是output folder name:編譯後的輸出目錄 jdbctest/target/classes,不會自動的編譯,只有在compile只有才會進行編譯。

所以在沒有編譯之前和clean之後出現一個異常,錯誤: 找不到或無法加載主類 (前提是使用類.的方式,new的方式會自動編譯後加載),所以運行文件,需要先進行編譯

問題1:錯誤: 找不到或無法加載主類

上述已經說明

問題2.src /main/java 根據maven的構建,使用compile後會編譯該目錄下的.java的文件,放入target下,而對於其他文件不會添加,對java/main/resource,只會合並添加,不會進行編譯,假如是java文件,合並後在target中還是java文件,對於test下也類似。

技術分享圖片

5.由上一些原因所以導致如下一些結果

public class DriverManagerTest {
	//文件的運行時建立在編譯上
	public static void main(String[] args) throws Exception {
          //new後會自動加載 // DriverManagerTest driverManagerTest = new DriverManagerTest();
          //在沒有compile後,或者clean後會找不到類,解決方法上述已經說明 Connection connection = DriverManagerTest.getConnection("config.properties"); System.out.println(connection); } public static Connection getConnection(String path) throws IOException, ClassNotFoundException, SQLException { Properties properties = new Properties(); //所以getResourceAsStream讀取的目錄是對編譯後的文件位置而言的,所以以下在編譯以後可以這麽寫 // InputStream ras=DriverManagerTest.class.getClassLoader().getResourceAsStream(path); InputStream ras = DriverManagerTest.class.getResourceAsStream("/" + path); if (ras == null) { System.out.println("Connection==nulls"); return null; } properties.load(ras); String url = properties.getProperty("url"); String driverClass = properties.getProperty("driverClass"); ras.close(); // 不用獲取對象,或自動的註冊 Class.forName(driverClass); Connection connection = DriverManager.getConnection(url, properties); return connection; } }

淺析java的Java-Build-path與maven的Java-Build-path