Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Apache Brooklyn中获取资源_Java_Maven_Brooklyn - Fatal编程技术网

Java 如何在Apache Brooklyn中获取资源

Java 如何在Apache Brooklyn中获取资源,java,maven,brooklyn,Java,Maven,Brooklyn,我正在尝试构建自己的实体,它基于VanillaWindowsProcess。其想法是,在安装windows机器后,执行一些powershell命令,这些命令位于文件中 我尝试了一些在另一个Java项目中多次使用的方法来获取资源: private void runInstallationScript() { List<String> lines; try { lines = FileUtils.readLines( new

我正在尝试构建自己的实体,它基于VanillaWindowsProcess。其想法是,在安装windows机器后,执行一些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);
    }
}
private void runInstallationScript(){
列出行;
试一试{
lines=FileUtils.readLines(
新文件(TalendWindowsProcessWinRmDriver.class.getResource(“/my/path/File.txt”).getFile()),
“utf-8”);
ExecutePScript(行);
}捕获(IOE异常){
LOG.error(“读取文件时出错:”,e);
}
}
但我总是得到以下信息:

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

这很奇怪,因为该文件位于该路径的jar中。我做了一个测试(没有ApacheBrooklyn基础设施),它可以工作,但另一方面,它不能

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


有什么不对劲吗?或者可能有另一种方法来获取该文件?任何帮助都将不胜感激。

您不能将jar中的资源作为
文件
对象进行访问。您需要使用
InputStream
(或
URL
)来访问它

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


如果您没有访问源代码的权限,您可以编写自己的方法或用于Java>=7。

您不能将jar中的资源作为
文件
对象进行访问。您需要使用
InputStream
(或
URL
)来访问它

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

如果您没有访问源代码的权限,您可以编写自己的方法或用于Java>=7