进行Eclipse插件开发或者RCP开发的时候,常常遇到这样的需求:程序员准备了几个文件打在jar包里,在程序运行的时候由用户的操作触发,要读jar包里的这几个文件,显示内容在界面上,或者直接复制文件到用户的目录中。这里提供两种直截了当的方法来实现这一目的。
第一,使用OSGi自带的utility class / methods,例子中的com.company.example是bundle (或者plugin) 的id,要读的文件是这个bundle中 resources文件夹中的 backup.txt 文件。
Bundle bundle = Platform.getBundle("com.company.example");
URL fileURL = bundle.getEntry("resources/backup.txt");
File file = null;
try {
file = new File(FileLocator.resolve(fileURL).toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
第二,不依赖OSGi Platform,直接使用platform协议(platform:/plugin)生成URL,例子中的com.company.example是bundle (或者plugin) 的id,要读的文件是这个bundle中 resources文件夹中的 backup.txt 文件。
URL url;
try {