【问题标题】:Warning: failed to read path from javaldx警告:无法从 javaldx 读取路径
【发布时间】:2020-06-10 08:44:09
【问题描述】:

在 ubuntu 上使用 Libreoffice 转换文件时出错:

CompletedProcess(args=['soffice', '--headless', '--convert-to', 'txt:Text', '/var/www/Project/temp/e4bac2c2e7c04eb79cfa522967a30dd3.docx', '-- outdir', '/var/www/Project/temp/'], returncode=77, stdout=b'', stderr=b'javaldx failed!\nWarning: failed to read path from javaldx\n')

使用子流程:

process = subprocess.run(['soffice', '--headless', '--convert-to', 'txt:Text', path_docx, '--outdir', settings.TEMP_ROOT], stdout=subprocess .PIPE, stderr=subprocess.PIPE, timeout=timeout)

~# java --version

openjdk 11.0.6 2020-01-14 OpenJDK 运行时环境(build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1) OpenJDK 64-Bit Server VM(build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1,混合模式,共享)

【问题讨论】:

  • 这个问题是因为您的应用程序在没有适当权限的环境中运行引起的。我遇到了同样的问题,我可以在我的 java.exec 调用之外重现它:sudo -u tomcat8 soffice --headless..... 我认为 appArmor 正在阻止 libreOffice 打开另一个转换所需的可执行文件。将继续尝试解决此问题并进行更新。

标签: python linux ubuntu libreoffice


【解决方案1】:

好的,找到了解决方案:
如果您使用非 root 用户在 headless 中使用 libreoffice,尝试将 docx 转换为 pdf,则会出现此错误:

javaldx failed!
Warning: failed to read path from javaldx

您的用户没有设置主文件夹,或者主文件夹不可写。我刚刚从直接调用 libreoffice 切换到通过这样的 shell 脚本调用它:

export HOME=/opt/fhir-services && /usr/lib/libreoffice/program/./soffice --headless --invisible --convert-to pdf --outdir /opt/fhir-services /opt/fhir-services/tmp.docx

tomcat8 是该文件夹的所有者,现在可以转换了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    相关资源
    最近更新 更多