我正在尝试构建自己的实体,它基于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);
}
}
但我总是得到以下内容:
ava.io.FileNotFoundException:文件'文件:/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
有什么问题吗?或者可能有另一种方法来获取该文件?任何帮助将不胜感激。
答案 0 :(得分:0)
您无法将jar内的资源作为File
对象进行访问。您需要使用InputStream
(或URL
)来访问它。
由于您已使用getResource
,因此应更改方法FileUtils.readLines
以接受InputStream
(或URL
)作为输入。
如果您无权访问源代码,则可以编写自己的方法或使用Files.readAllLines
for Java&gt; = 7.