在 JAVA 中使用 OpenOffice SDK 加载文档时出错

问题描述 投票:0回答:1

我正在尝试使用 JAVA 中的 OpenOffice SDK 加载文档。我正在使用

XComponentContext xContext = Bootstrap.bootstrap()
,并尝试通过Java获取OpenOffice的远程办公室组件上下文。但它引发了异常
no office executable

我已附上我的JAVA代码、openOffice SDK路径和Java JDK路径。 OpenOffice 的版本是

4.1.14
,机器是
MacOS x86_64
Java version 8

我本地OpenOffice sdk的路径: Path of OpenOffice sdk in my local

错误消息:未找到 Office 可执行文件 Error message: no office executable found

OpenOffice SDK 的位置 -

/Users/madhup/Desktop/OpenOffice_SDK

Java JDK 路径 -

/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home/bin/javac

zshrc简介: zshrc profile

Java代码:

import com.sun.star.beans.PropertyValue;
import com.sun.star.comp.helper.Bootstrap;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.lang.XComponent;
import com.sun.star.uno.UnoRuntime;

import com.sun.star.uno.XComponentContext;
import com.sun.star.comp.helper.BootstrapException;
public class LoadDocument {
    public static void main(String[] args) throws BootstrapException {
        try {
            XComponentContext  xContext = Bootstrap.bootstrap();

            com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager();

            Object oDesktop = xMCF.createInstanceWithContext(
                    "com.sun.star.frame.Desktop", xContext);

            XComponentLoader xCompLoader = (XComponentLoader) UnoRuntime.queryInterface(
                    XComponentLoader.class, oDesktop);

            String documentURL = "file:///Users/path_to_file/hello.odt";

            PropertyValue[] loadProps = new PropertyValue[0];

            XComponent xComponent = xCompLoader.loadComponentFromURL(
                    documentURL, "_blank", 0, loadProps);

            if (xComponent != null) {
zshrc profile paths                System.out.println("Document loaded successfully.");
                xComponent.dispose();
            } else {
                System.out.println("Failed to load the document.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Pom 文件:

<dependencies>
        <dependency>
            <groupId>org.openoffice</groupId>
            <artifactId>unoil</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.openoffice</groupId>
            <artifactId>juh</artifactId>
            <version>4.1.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.openoffice</groupId>
            <artifactId>jurt</artifactId>
            <version>4.1.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.openoffice</groupId>
            <artifactId>ridl</artifactId>
            <version>4.1.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.openoffice</groupId>
            <artifactId>officebean</artifactId>
            <version>4.1.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.github.jeremysolarz</groupId>
            <artifactId>bootstrap-connector</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

我已经探索过,设置了 SDK 路径,并添加了类路径,如 通过 Java 连接到 OpenOffice 时没有 Office 可执行文件发现异常,但仍然收到错误。

请帮忙解决这个问题。

java sdk openoffice.org uno
1个回答
1
投票

在你的项目依赖中添加soffice的路径,就可以了。就我而言,是

/opt/Libreoffice7.6/program/

© www.soinside.com 2019 - 2024. All rights reserved.