0

我想在我的Eclipse 插件中获取图标的操作系统位置,我使用以下代码:

URL fileURLIconChoose = bundle.getEntry("pluginIcons/iconConfirm.png");
String pathIconChoose = null;
try {
  pathIconChoose = FileLocator.resolve(fileURLIconChoose).toURI().getPath();
} catch (URISyntaxException e1) {
  e1.printStackTrace();
} catch (IOException e1) {
  e1.printStackTrace();
}
JButton confirm = new JButton(new ImageIcon(pathIconChoose));   

当我在Eclipse 环境中运行代码时,它工作正常,但是当我导出我的产品并将其安装在 Eclipse 中时,它会失败。

如何解决图标加载的问题?还有其他方法可以访问插件中的图标吗?

4

1 回答 1

0

您将需要改用FileLocator.toFileURL(URL url)API。

正如您从javadoc中看到的,它会在您需要访问文件时将文件的内容提取到磁盘中。

重新设计的代码

URL fileURLIconChoose = bundle.getEntry("pluginIcons/iconConfirm.png");
String pathIconChoose = null;
try {
  pathIconChoose = FileLocator.toFileURL(fileURLIconChoose).toURI().getPath();
} catch (URISyntaxException e1) {
  e1.printStackTrace();
} catch (IOException e1) {
  e1.printStackTrace();
}
JButton confirm = new JButton(new ImageIcon(pathIconChoose));   
于 2013-05-07T07:10:52.347 回答