我开发了一个eclipse插件,并且我有一个java文件试图读取目录然后相应地填充结果。 当我尝试通过Run> Java应用程序从eclipse本身运行该文件时,它给了我正确的结果,但是当我尝试通过Eclipse Application运行它时,它会抛出NullPointerException,因为无法找到该目录。
我尝试了以下方式 - 假设,我有一个包 -
包 - com.test.abhishek.file.java.TestWork.java
目录 - com.test.abhishek.file.java.Dir1 com.test.abhishek.file.java.Dir2 现在在TestWork.java- InputStream is = HelpContentView.class.getResourceAsStream(“/”+ dirName); **
以上一行失败了。 我应该如何保留我的目录以及它将作为eclipse插件运行的位置。
试图通过找到类路径 TestWork.class.getClassLoader()。getResource(“”)。getPath()并将输出设为 / 那么我现在应该把我的目录转储到哪里来重新解析。
答案 0 :(得分:2)
只是想了解你在做什么。您希望在源结构中有一个目录? Eclipse插件通常放在jarins的/ plugins目录中。这意味着您要么A)需要使用build.properties将资源与插件捆绑在一起,要么将它们放在文件结构中的其他位置并使用普通的文件IO机制访问它。
如果您要创建插件,则最有可能想要使用Bundle.getEntry
public void start(BundleContext context) {
Bundle bundle = context.getBundle();
InputStream in = bundle.getEntry("/"+dirName").openStream();
}
答案 1 :(得分:1)
看起来你需要findEntries API。
对于某些示例代码,请查看How to test if a URL from an Eclipse bundle is a directory?
处的相关问题(和答案)