java - 导出后 Eclipse 插件项目中的 ASCII 文件不可见

标签 java file build eclipse-plugin export

我正在开发一个 Eclipse 插件项目。在该项目中,我有一个文件夹 resources,其中包含一个简单的 ASCII 文件,其中包含带有 String 的行。这些 String 由 ui 在下拉菜单中使用。如果我运行新的启动时 Eclipse,一切都会正常工作,并且下拉菜单成功使用文件内容,但如果我导出应用程序并运行它,下拉菜单为空,这意味着,该文件无法读取。

plugin.xml(“构建”选项卡)内,我已在二进制构建中标记了资源文件夹(其中包含 ASCII 文件)。

这是我逐行提取文件的方法:

public class ParameterExtractor {

    private final static String FILE_PATH = "/resources/parameters";

    public ArrayList<String> extractParameters() throws IOException {
        ArrayList<String> params = new ArrayList<String>();
        URL url = FileLocator.resolve(getClass().getResource(FILE_PATH));
        URI uri = null;
        try {
            uri = url.toURI();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        if (uri != null) {
            try {
                File file = new File(uri);
                FileReader fileReader = new FileReader(file);
                BufferedReader bufferedReader = new BufferedReader(fileReader);
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    params.add(line);
                }
                fileReader.close();
            } catch (Exception ioe) {
                ioe.printStackTrace();
            }
        }
        return params;
    }
}

这就是我使用返回的ArrayList的方式:

ArrayList<String> params = new ArrayList<String>();
try {
    params = new ParameterExtractor().extractParameters();
} catch (IOException e1) {
    e1.printStackTrace();
}
final Combo combo = new Combo(container, SWT.BORDER);
combo.setItems(params.toArray(new String[params.size()]));

什么可能导致该问题以及如何解决?

如果有任何帮助,我将不胜感激!

最佳答案

FileLocator.resolve 不保证返回可用于读取文件的 URL。而是使用:

Bundle bundle = ... your plugin bundle

URL url = FileLocator.find(bundle, new Path(FILE_PATH), null);

url = FileLocator.toFileURL(url);

toFileURL 返回的 URL 适合使用 FileFileReader 读取。

关于java - 导出后 Eclipse 插件项目中的 ASCII 文件不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667067/

相关文章:

reactjs - 在 create-react-app 应用程序中构建bundle.js

像 winamp 选择文件这样的 java 程序

java - 平台碰撞和跳跃的奇怪行为

Xcode 文件和文件夹干净的结构和组织

file - Lua中如何获取文件大小和删除文件?

build - Dojo 1.8 和构建(或缺少)

java - Spring 框架创建带有名称的 bean 时出错,并且没有合格的 bean 类型

java - Java FileReader即使使用绝对路径也找不到文件

arrays - 跳过数组中的一行,Perl

git - 在 Bamboo 上获取提交文件列表