最近在做项目的时候,自己写了一些配置参数的读取,将配置文件放到具体的位置,然后让程序根据当前类的路径寻找配置文件的路径,但是,发现eclipse的开发坏境下是可以顺利读取到指定路径下的配置文件中的配置参数的,
但是当将项目放到Tomcat下 或者 将项目打包成可执行jar包之后,编译后的class文件却读取不到了开发环境下寻找的配置文件了。
如果在 .java 文件中直接写// public static String Config = "config.properties"; 则该路径指向的就是项目的 src 的同级目录(直接将配置文件放到项目的根目录下)
经过查找资料和进行验证,现将读取class文件相对路径下配置文件的方法汇总如下:
方法一:使用System获取路径
方法二:使用当前类的ProtectionDomain或者ClassLoader获取路径
方法三:使用Thread获取路径
方法一:
示例:
public static final String URLConfig = System.getProperty("user.dir").replace("bin", "webapps")+"/URLConfig.properties";//这种是将配置文件放到Tomcat的webapps的目录下
其中的 System.getProperty("user.dir") 为获取用户当前工作目录
java的System.getProperty()方法可以获取的值
获取的代码示例:
public class SystemProperty {
public static void main(String args[]) {
System.out.println("java_vendor:" + System.getProperty( "java.vendor" ));
System.out.println("java_vendor_url:"
+ System.getProperty("java.vendor.url" ));
System.out.println("java_home:" + System.getProperty( "java.home" ));
System.out.println("java_class_version:"
+ Sys