Java(89):Properties从jar外或classPath读取配置文件value方法

本文介绍了如何在Java中使用Properties类从jar包外和classpath读取config.properties配置文件的value方法,包括isRunningInJar判断与文件路径获取技巧。
摘要由CSDN通过智能技术生成

1、Properties从jar外或classPath读取配置文件value方法

调用:

String mailFrom= Common.readProperty("./config.properties","MAIL_FROM");
String passwd= Common.readProperty("./config.properties","MAIL_PASSWORD");
String mailTo= Common.readProperty("./config.properties","MAIL_TO");

方法:

   /**
     * 按key获取值
     * @param filename 文件名
     * @param key 键
     * @return value
     */
    public static String readProperty(String filename,String key){
        Properties pros=new Properties();
        String value="";
        InputStream is=null;
        try{
            if (Common.isRunningInJar()) { //从jar包外.当前目录读取
                String filePath = System.getProperty("user.dir") + "/" + filename;
                is = new FileInputStream(filePath);
            }
            else {//非jar包,从classpath获取
                String filePath = Common.class.getClassLoader().getResource(filename).getPath();
                is = new FileInputStream(filePath);
            }
            InputStreamReader reader = new InputStreamReader(is,"UTF-8");
            pros.load(reader);
            value=pros.getProperty(key);
            reader.close();
        }
        catch (IOException e){
            log.error(String.valueOf(e));
        }
        finally {
            try{
                if(is != null) {
                    is.close();
                }
            }catch (IOException e){
                log.error(e.toString());
            }
        }
        return value;
    }

判断是否是jar包执行方法:

调用:

if (Common.isRunningInJar()) { //从jar包外.当前目录读取

方法:

    /**
     * 是否以Jar包运行
     * @return boolean true真或false假
     */
    public static boolean isRunningInJar() {
        try {
            String className = Common.class.getName().replace('.', '/');
            String classJar = Common.class.getResource("/" + className + ".class").toString();
            return classJar.startsWith("jar:");
        } catch (Exception e) {
            log.warn("get Running status failed.");
            return false;
        }
    }

打包Java项目并运行jar包,需要使用Java的打包工具,如Maven或Gradle。 以下是使用Maven打包Java项目并运行jar包的步骤: 1. 在项目根目录下创建一个名为pom.xml的Maven配置文件,其中包含项目依赖和插件配置。 2. 在配置文件中添加以下插件: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 这将生成一个可执行的jar文件,并将项目的主类指定为程序的入口点。 3. 在配置文件中添加以下依赖项: ```xml <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.10</version> </dependency> </dependencies> ``` 这将下载并包含commons-lang3库,以便您可以在程序中使用它。 4. 执行以下命令打包项目: ``` mvn package ``` 这将在target目录下生成一个名为project-name.jar的可执行文件。 5. 运行jar文件: ``` java -jar project-name.jar ``` 6. 在程序中读取properties配置文件: ```java Properties prop = new Properties(); InputStream input = getClass().getClassLoader().getResourceAsStream("config.properties"); prop.load(input); String value = prop.getProperty("key"); ``` 在程序中可以使用Properties读取配置文件。在这个例子中,我们可以从classpath读取名为config.properties配置文件,并获取其中的属性值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值