淺析java的Java-Build-path與maven的Java-Build-path
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