我已经创建了一个插件。它需要访问res文件夹中的2个文件。现在的诀窍是,res文件夹不在插件内。例如,我已经在本地发布了插件,所以它现在可以在“工具”菜单中的任何您创建的项目下看到。我想要的是,我创建的任何新项目,在res文件夹中都会有2个文件facility.json和groups.json,现在我的插件应该能够访问这些文件。我尝试了不同的方法,如下图所示,但总是失败,称为“未找到文件”异常。如果有人能帮我的话。谢谢。非常感谢。
private static File getFileFromResource(String fileName) throws URISyntaxException {
ClassLoader classLoader = Validator.class.getClassLoader();
URL resource = classLoader.getResource(fileName);
if (resource == null) {
throw new IllegalArgumentException("file not found! " + fileName);
} else {
// failed if files have whitespaces or special characters
//return new File(resource.getFile());
return new File(resource.toURI());
}
}
private static InputStream getFileFromResourceAsStream(String fileName) {
// The class loader that loaded the class
ClassLoader classLoader = Validator.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream(fileName);
// the stream holding the file content
if (inputStream == null) {
throw new IllegalArgumentException("file not found! " + fileName);
} else {
return inputStream;
}
}
1条答案
按热度按时间fdx2calv1#
这是最巧妙的部分,你没有。每次创建新项目时,您都必须自己添加它们,因为res文件夹不是插件,而是资源(假设您使用res作为资源)
通过手动添加每个facility.json和groups.json来尝试此操作
或
您的插件已在本地发布,因此添加地址可能会有所帮助
如果仍然没有,请尝试将res文件夹中只有facility.json&groups.json的干净项目保存为项目模板。这取决于你的ide,
intelij idea-jetbrain:https://www.jetbrains.com/help/idea/saving-project-as-template.html
netbeans ide-apache:https://netbeans.apache.org/tutorials/nbm-filetemplates.html
根据我的经验,我正在为新项目创建自己的netbeans模板