Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven onejar插件,获取属性文件_Java_Maven_Uberjar - Fatal编程技术网

Java Maven onejar插件,获取属性文件

Java Maven onejar插件,获取属性文件,java,maven,uberjar,Java,Maven,Uberjar,我正在使用Maven onejar插件()创建一个uberjar 我想访问类路径根目录中的属性文件,如下所示: Properties prop = new Properties(); try { prop.load(new FileInputStream("Db.properties")); driver = prop.getProperty("driver"); url = prop.getProper

我正在使用Maven onejar插件()创建一个uberjar

我想访问类路径根目录中的属性文件,如下所示:

Properties prop = new Properties();

        try {
            prop.load(new FileInputStream("Db.properties"));

            driver = prop.getProperty("driver");
            url = prop.getProperty("url");
            username = prop.getProperty("username");
            password = prop.getProperty("password");

        } catch (IOException ex) {
            LOG.debug(ex.toString());
        }   

        conn = null;
我的log4j.properties文件位于同一目录中,因为我可以进行日志记录。。。我有什么问题/ 但是找不到Db.properties。

用于从文件系统上的文件加载资源。jar中的文件不在文件系统中。你需要使用不同的方法

对于这种情况,建议使用该方法。它返回在类路径上找到的InputStream资源。比如:

InputStream is = getClass().getClassLoader().getResourceAsStream("/Db.properties");
应该有用。或为方便起见:

InputStream is = getClass().getResourceAsStream("/Db.properties");
需要注意的是,
log4j.properties
之所以有效,是因为log4j通过设计可以加载根类路径中的配置文件。

用于从文件系统上的文件加载资源。jar中的文件不在文件系统中。你需要使用不同的方法

对于这种情况,建议使用该方法。它返回在类路径上找到的InputStream资源。比如:

InputStream is = getClass().getClassLoader().getResourceAsStream("/Db.properties");
应该有用。或为方便起见:

InputStream is = getClass().getResourceAsStream("/Db.properties");

值得注意的是,
log4j.properties
之所以有效,是因为log4j通过设计可以加载根类路径中的配置文件。

Db.properties打包在jar中了吗?是的,我打开了我的remement.one-jar.jar->main->remement.jar,在这个jar文件中,我的Db.properties文件与log4j.properties Db.properties打包在同一路径中jar?是的,我正在打开我的remention.one-jar.jar->main->remention.jar,在这个jar文件中是我的Db.properties文件,路径与log4j.propertiesMh相同。。。它仍然不起作用。。InputStream i=getClass().getResourceAsStream(“Db.properties”);试试{prop.load((FileInputStream)i);我知道了!我在Db.properties前面加了一个斜杠!谢谢你。Mh…它仍然不起作用..InputStream i=getClass().getResourceAsStream(“Db.properties”);试试{prop.load((FileInputStream)i);我知道了!我在Db.properties前面加了一个斜杠!谢谢你。