標籤:inpu csharp puts sse 自動載入 技術 classes 淺析 ring
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