从我的项目中包含的 jar 调用属性文件

Posted

技术标签:

【中文标题】从我的项目中包含的 jar 调用属性文件【英文标题】:Call Property file from a jar included in my project 【发布时间】:2014-12-20 18:07:30 【问题描述】:

我已经包含了一个用于身份验证的 jar(我构建了它:MyJar.jar),在那个 jar 中我必须读取我在包中的一些属性(例如 com.jar)。 myproject.properties) 在我的项目的属性文件中。

我在 MyJar.jar 中有一个方法,它接收属性名称和属性文件的路径,如下所示:

public String getValueOfProperty(String property,String pathToPropertyFile)

    BasicTextEncryptor encryptor = new BasicTextEncryptor();
         Properties props = new EncryptableProperties(encryptor);
         props.load(new FileInputStream(pathToPropertyFile));
         ....

我收到以下错误:系统找不到指定的路径

路径为:com/myproject/properties/conf.properties

我做错了什么?

【问题讨论】:

属性文件是否打包在jar中?如果是这样,您将不得不以不同的方式加载它。 它在项目的一个包中,我已经包含了 jar @user2494817 参考:***.com/questions/4548699/load-file-within-a-jar 它不必在 jar 中,它在一个包 com.myproject.properties 中的一个新项目中,其中我包含了 jar 文件 【参考方案1】:

解决了,

这是我用的:

方法接收的路径是这样的:/sv/com/myproject/configuration/file.properties,

此方法将使用相对路径搜索

 public String decryptVar(String var,String PathPropertyFile) throws Exception

    try 
         BasicTextEncryptor encryptor = new BasicTextEncryptor();
         Properties props = new EncryptableProperties(encryptor);
         InputStream fis = this.getClass().getResourceAsStream(PathPropertyFile);
         props.load(fis);
         encryptor.setPassword(props.getProperty("PROPERTY_IN_FILE")); 
         return props.getProperty(var);

     catch (Exception e) 
    throw new Exception(e.getMessage());
       


实现:JASYPTH

【讨论】:

以上是关于从我的项目中包含的 jar 调用属性文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中启动我的项目中包含的 .exe 文件? [复制]

如何从我的项目构建 jar 文件?

在编译时设置 app.manifest 中包含的属性

如何使用 Eclipse 中包含的外部库创建 jar?

收到一个主 jar 文件,其中包含需要在类路径中的其他 jar 文件。在我的 Maven 项目中包含这个主 jar 的最佳方法是啥?

如何在我的 gradle java 项目中包含外部 .jar? [复制]