我是一名 C# 开发人员,实际上我必须在 Java 1.6 中为 OpenOffice-PlugIn 开发一些功能。这些功能之一是获取环境的一些元信息,例如正在执行的 OpenOffice 的版本。在谷歌上我没有找到任何东西。我知道存在一个注册表项。但这只是一个没有值的子键。有谁知道,我如何获得使用 Java 1.6 执行的 OpenOffice 的版本号?
编辑:
现在我有了解决方案。如果他们有同样的问题,我会帮助其他开发人员。它只能封装在一个方法中。
XComponentContext componentContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
XMultiComponentFactory xRemoteServiceManager = componentContext.getServiceManager();
Object configProvider = xRemoteServiceManager.createInstanceWithContext( "com.sun.star.configuration.ConfigurationProvider", componentContext);
XMultiServiceFactory xConfigProvider = (XMultiServiceFactory) UnoRuntime.queryInterface( XMultiServiceFactory.class, configProvider);
PropertyValue[] lParams = new PropertyValue[1];
lParams[0] = new PropertyValue();
lParams[0].Name = "nodepath";
lParams[0].Value = "/org.openoffice.Setup/Product";
Object xAccess = xConfigProvider.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess" , lParams);
XNameAccess xNameAccess = (com.sun.star.container.XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xAccess);
String OOVersion = (String)xNameAccess.getByName("ooSetupVersion");
return OOVersion;