我想要实现的目标
我想在每次登录/电脑启动时启动 Java jar。因此我使用 rc.local。我重新激活了它,以便它在/etc/rc.local
启动时执行脚本(测试过,服务运行良好)。
问题
我想启动 jar,我收到了HeadlessException
或Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
我正在使用以下脚本(rc.local 的内容)
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
java -jar -Djava.awt.headless=false /home/myusernamehere/path/to/jar/theJar.jar
exit 0
当我删除-Djava.awt.headless=false
参数时,我收到 HeadlessException。
那么,如何解决这个问题?还有其他好方法可以启动 jar 吗(作为 root 用户) 在系统启动时?
其他规格
- Ubuntu 版本:16.10
- Java版本:openjdk版本“1.8.0_111”
相关内容以及我尝试过的内容
- https://stackoverflow.com/questions/5362512/unable-to-run-java-gui-programs-with-ubuntu(已经安装“正确的”jdk)
- 将 headless 参数设置为
true
-> jar 会抛出 HeadlessException