gpt4 book ai didi

java - 不同的输出——在命令行中运行 mathtext 时以及使用 apache-commons-exec 从 java 程序执行该命令时

转载 作者:行者123 更新时间:2023-12-01 15:22:10 27 4
gpt4 key购买 nike

我正在尝试使用 apache-commons-exec 从 java 程序运行 mathtext。问题是当我从 java 程序运行相同的命令时和通过 shell 运行它时,我得到不同的输出。因此,如果在 shell 中像这样运行 mathtext:

./mathtext test.png "\$\frac{{\left( {{p^2} - {q^2}} \right)}}{2}\$"

在 shell 中我得到了完美的 png但是当我使用 apache-commons-exec 运行同样的事情时

Map map = new HashMap();    

map.put("target", new File(trgtFileName));
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor exec = new DefaultExecutor();
exec.setWorkingDirectory(/*I set the working directory where the mathtext is*/);
CommandLine cl = new CommandLine("./mathtext");
cl.addArgument("${target}");
cl.addArgument(latex);
cl.setSubstitutionMap(map);
// Logger.log4j.info("command is:::"+cl.toString());
ExecuteWatchdog watchdog = new ExecuteWatchdog(5000);
exec.setWatchdog(watchdog);
exec.execute(cl,EnvironmentUtils.getProcEnvironment(),resultHandler);
resultHandler.waitFor();

我得到了图像,不是方程,而是原始的 TeX 字符串:(

有人可以帮我解决这个问题吗?我想得到准确的输出。谢谢。

最佳答案

我找出了问题所在:

$ 是 unix shell 的特殊字符,而不是 java 的特殊字符。因此,即使在命令行中输入也需要转义 $,例如:

"\$\frac{{\left( {{p^2} - {q^2}} \right)}}{2}\$"

在java程序中,我不需要转义“$”或在开头和结尾放置“(双引号)。我必须输入如下命令:

$\frac{{\left( {{p^2} - {q^2}} \right)}}{2}$

希望这对某人有帮助:)

--尚科尼尔

关于java - 不同的输出——在命令行中运行 mathtext 时以及使用 apache-commons-exec 从 java 程序执行该命令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com