【问题标题】:How to get a Resource in Apache Brooklyn如何在 Apache Brooklyn 中获取资源
【发布时间】:2015-09-23 08:32:35
【问题描述】:

我正在尝试构建我自己的实体,它基于 VanillaWindowsProcess。思路是,在安装完windows Machine之后,执行一些powershell命令,这些命令都在一个文件里。

我尝试了一些我在另一个 Java 项目中多次使用的东西来获取资源:

private void runInstallationScript() {
    List<String> lines;
    try {
        lines = FileUtils.readLines(
                new File(TalendWindowsProcessWinRmDriver.class.getResource("/my/path/file.txt").getFile()),
                "utf-8");
        executePsScript(lines);
    } catch (IOException e) {
        LOG.error("Error reading the file: ", e);
    }
}

但我总是得到以下信息:

ava.io.FileNotFoundException: File 'file:/opt/workspace/incubator-brooklyn/usage/dist/target/brooklyn-dist/brooklyn/lib/dropins/myProject-0.0.1-SNAPSHOT.jar!/my /path/file.txt' 不存在

这很奇怪,因为文件在该路径的 jar 中。我做了一个测试(没有 Apache Brooklyn 基础设施),它可以工作,但反过来却不行。

项目遵循Maven标准结构,文件本身在src/main/resources/my/path/file.txt下

有什么问题吗?或者也许有另一种方法来获取该文件?任何帮助将不胜感激。

【问题讨论】:

    标签: java maven brooklyn


    【解决方案1】:

    您不能以File 对象的形式访问 jar 中的资源。您需要使用InputStream(或URL)来访问它。

    由于您已经在使用getResource,您应该更改方法FileUtils.readLines 以接受InputStream(或URL)作为输入。

    如果您无权访问源代码,您可以编写自己的方法或使用Files.readAllLines for Java >= 7。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      相关资源
      最近更新 更多