gpt4 book ai didi

java - 如果从 Tomcat 调用,Firefox headless 永远不会从截图中返回

转载 作者:行者123 更新时间:2023-11-28 23:10:27 25 4
gpt4 key购买 nike

我使用 firefox 以 headless 模式截取屏幕截图。我使用以下代码从 Tomcat 8(在 Ubuntu 18.04 上运行)中的 Web 应用程序调用 firefox:

String command = "firefox --headless --screenshot /opt/foobar.png http://foo.bar; pkill firefox";
Process start = Runtime.getRuntime().exec(new String[]{"bash","-c", command});

BufferedReader reader = new BufferedReader(new InputStreamReader(start.getInputStream()));

String line;
while ((line = reader.readLine()) != null) {
log.info(line);
}
int exitCode = start.waitFor();

我得到以下输出(与 getErrorStream() 相同): *** You are running in headless mode.但之后什么也没有发生。 Firefox 未返回且未创建屏幕截图。

我知道网络应用程序是由用户 tomcat 运行的, 所以我创建了一个目录 /var/lib/tomcat8/.cachechmod 777 (仅供测试!)。

如果我调用 firefox --headless --screenshot /opt/foobar.png http://foo.bar; pkill firefox在我用户的 bash 下,Firefox 创建屏幕截图并在不到一秒内返回。

Firefox 没有返回的任何想法?似乎存在一些权限问题,但由于 Firefox 不输出任何内容,因此很难判断。感谢您的帮助!

最佳答案

诀窍是创建 /var/lib/tomcat8/.mozilla 并将其 chown 到 tomcat8 以及 chmod 77。

关于java - 如果从 Tomcat 调用,Firefox headless 永远不会从截图中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58748046/

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