java - 如何提供文件路径,从jar到其他函数。

问题描述 投票:1回答:1

我正在创建一个应用程序(hive udf),为此我创建了一个包含所有依赖项的胖jar。由于这个应用程序将分布在多个节点上,我需要将我的属性文件也打包到jar中。

问题 我从另一个jar中调用的一个函数需要一个参数,一个属性文件路径。我把这个属性文件打包在jar里,只传了名字。但是,它抱怨说没有找到这个文件。

编码。

  c = new ABC("classification.props");

在jar里面的函数 美国广播公司 读取属性文件的类

public static Properties getProperties(String propFile) {
    Properties props = new Properties();

    try {
        props.load(new FileInputStream(propFile));
        return props;
    } catch (IOException var3) {
        var3.printStackTrace();

    }
}

这个ABC是来自另一个罐子.不过我是在创建一个胖罐子,所以应该无所谓。分类.道具 是在应用程序的根目录下。

java
1个回答
0
投票

getProperties 方法是在寻找文件系统中的一个文件。那不是你的文件所在的地方 -- 你的文件在 JAR 中。

如果你能改变getProperties`方法,你可以告诉它把文件作为类路径资源来读取。

如何从资源文件夹中加载文件?

如果你不能修改 getProperties 方法,你可以将属性复制到文件系统中(使用链接答案中的技术将其加载为类路径资源,然后写入临时目录)。

© www.soinside.com 2019 - 2024. All rights reserved.