标签: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
标签:inpu csharp puts sse 自动加载 技术 classes 浅析 ring
原文地址:https://www.cnblogs.com/gg128/p/9436493.html