私は C# 開発者ですが、実際には OpenOffice-PlugIn 用に Java 1.6 でいくつかの機能を開発する必要があります。これらの関数の 1 つは、実行中の OpenOffice のバージョンなど、環境のメタ情報を取得することです。Googleで何かが見つかりませんでした。レジストリ エントリが存在することはわかっています。しかし、それは値のない単なるサブキーです。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;