警告:无法从 javaldx 读取路径

Evg*_*kov 8 python linux ubuntu libreoffice

在 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 失败!\n警告:无法从 javaldx 读取路径\n')

使用子进程:

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

~# java --version

openjdk 11.0.6 2020-01-14 OpenJDK 运行时环境(构建 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)OpenJDK 64 位服务器 VM(构建 11.0.6+10-post-Ubuntu-1ubuntu118.04.1,混合模式,共享)

tyr*_*rex 16

扩展 @wolfmanx 的评论:以下内容在 Ubuntu 18.04 上对我有用

sudo apt-get install libreoffice-java-common default-jre

尤其default-jre是必要的。此外:请注意,这似乎“只是”一个警告。尽管如此,该操作仍可能有效。


Pat*_*ner 6

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

javaldx failed!
Warning: failed to read path from javaldx
Run Code Online (Sandbox Code Playgroud)

您的用户没有设置主文件夹,或者主文件夹不可写。我刚刚从直接调用 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
Run Code Online (Sandbox Code Playgroud)

tomcat8 是这个文件夹的所有者,现在转换工作。

  • 对于那些只收到“警告:无法启动 javaldx - java 可能无法正常运行”而没有任何进一步说明的人,此解决方案在 Ubuntu 22.04 上对我有用:“sudo apt-get install libreoffice-java-common” (18认同)