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