我有两个插件:
com.example.a
com.example.b
com.example.a
包含我想从com.example.b
访问的plugin.properties。
当我在插件com.example.b
中调用以下内容时,我会得到MissingResourceException
:
ResourceBundle resourceBundle = ResourceBundle.getBundle( "com.example.a",
Locale.getDefault() );
resourceBundle.getString( key );
这显然是错误的,但我希望你明白这一点。
如何从其他插件访问属性文件的本地化字符串?
答案 0 :(得分:2)
此代码将加载plugin.properties或在' Bundle-Localization'中为插件指定的任何内容。 MANIFEST.MF标题:
Bundle bundle = Platform.getBundle("com.example.a");
BundleContext bundleContext = bundle.getBundleContext();
ServiceReference<BundleLocalization> ref = bundleContext.getServiceReference(BundleLocalization.class);
BundleLocalization bundleLoc = bundleContext.getService(ref);
ResourceBundle resourceBundle = bundleLoc.getLocalization(bundle, Locale.getDefault().toString());