好吧,这是一个相当奇怪的问题,我不确定它是否真的适合放在这个页面上。但由于它涉及 LaTeX,我会在这里发布它。
我编写了一个 Java 程序,通过 从 LaTeX 内部调用它\immedeiate\write18{java -jar <myJar>}
。除了以下极端情况外,此程序运行良好:
- 我位于名称中包含变音符号的目录中(例如
ä
) - 我正在使用
lualatex
编译文档 - (我使用的是 Linux)我的系统是 KDE Neon 5.16,内核是 4.18。我使用的是 TexLive 2018,我的 lualatex 版本是 1.07.0
如果满足所有这些条件,则呼叫失败并显示消息Error: LinkageError occurred while loading main class <name> java.lang.ExceptionInInitializerError: null
。
我仔细检查了我是否可以通过终端从该目录调用 jar,并且当使用例如编译文档时调用可以正常工作pdflatex
(只要删除变音符号,它也可以正常工作lualatex
)。
我还验证了我可以编写一个 lua 脚本来调用 jar,os.execute(...)
lualatex 通过它的shellesc
包使用它来执行\write18
命令。但是,当我从 LaTeX 内部(通过\directlua
)执行相同的命令时,我收到上述错误消息。
我还检查了print(_VERSION)
lualatex 是否使用与我测试外部脚本相同的 lua 版本。
有人知道这里可能是什么问题吗?lualatex 对其 lua 环境所做的其他事情是否可能造成问题?
欢迎对此发表任何想法。
编辑:我的一个朋友在 Windows 机器上没有遇到这个问题(虽然我不能百分之百确定他实际上也在使用 lualatex)
EDIT2:这是MWE:
\documentclass{article}
\begin{document}
Some content so TeX won't complain
\directlua{os.execute("java -jar <PathToArbitraryJarFile>")}
\end{document}
Testär
将上述代码放入名为(或其他带有变音符号的名称)的文件夹中,然后使用以下命令编译该文档lualatex
编辑 3:
我在我的新机器上对其进行了测试,至少现在我只能在使用带有选项的 latexmk 时重现错误-pdflatex=lualatex
。
仅当目录名称中带有变音符号时才会出现此问题(说实话从未检查过其他特殊字符)...