首页 > 编程知识 正文

linux系统配置文件,读取jar包中的配置文件

时间:2023-05-05 08:46:34 阅读:114114 作者:2660

目录标题1、使用类加载器获取资源目录(1)获取资源的根目录(2)获取URL (3)获取资源目录下的指定文件)、 获取资源目录下的文件操作流(建议使用此方法操作资源目录下的文件)一)获取资源(getResource )方法的缺点;二)获取资源存储器(stringresourceasstream )

另一方面,使用类加载器获取资源目录(一)资源的根目录publicstaticvoidmain (string [ ] args ) {//BrokerConfig是类名system

输出:

/d :/Lihua/Java code/jmqtt/IOT-jmqtt/code/target/classes /即此目录。 编译代码后,将class文件和资源目录下的文件放在classes目录下

(二) URL 注意:getResource("")返回的对象类型是URL不是URI

通过调用//.getresource ' '可以获取URL对象。 此对象有许多方法,除了目录外,还包括文件、URI等对象URL resource=broker config.class.getclass loader (.get resource ) ') 调用的方法如下。

(三)获取资源目录指定的文件当然也可以携带【获取资源】文件目录参数:

也可以直接获取特定文件的路径

publicstaticvoidmain (string [ ] args ) string path=broker config.class.getclass loader ).getresource ) ) conf/jmqurce }输出:

/d :/Lihua/Java code/jmqtt/IOT-jmqtt/code/target/classes/conf/jmqtt.properties 2,资源目录中的缓冲区

如下所示。 将项目打包为jar并运行时,找不到资源文件中的FileNotException异常。

让我们看看jar的资源目录。

通过getResource ()获取的资源目录似乎正确。 其实不然。 因为jar包是特殊的压缩包。 以下路径无法操作jar包中的文件:

Java.io.file not found exception : file :d :LihuaJava codejmqttIOT-jmqttcodetargetcot confjmqtt.properties类加载器还提供了处理资源目录中配置文件资源的其他方法。

)二) getResourceasstream(stringpath ) getResourceasstream(stringpath )该方法可以直接获取资源目录中文件的输入流

publicstaticvoidmain (string [ ] args ) inputstreamresourceasstream=broker config.class.getclass loader ).getresourer rer prer try { properties.load (resourceasstream; }catch(ioexceptione ) { e.printStackTrace ); } system.out.println (properties.getproperty (' anonymous enable ' ); }

输出:

true三,Class.getResource ' ' )值得注意的是,Calss类也有getResource ' '。 此方法用于获取【. class】文件。

publicstaticvoidmain (string [ ] args ) string path=broker config.class.get resource (' ' ).getPath ); 系统. out.println (path ); }输出:

/d :/Lihua/Java code/jmqtt/IOT-jmqtt/code/target/classes/org/jmqtt/broker/common/config /此目录

四、应对关系在运行环境中,我们更多地操作classs文件下的资源。 例如,jar包打包后,只要通过getresourceasstream(stringpath )标识资源,就可以将jar发送到任何目录。 【即动态地取得路径】

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。