浅析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);
          connection.close(); } 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; } }

猜你喜欢

转载自www.cnblogs.com/gg128/p/9436493.html