我通过java <class file>
命令运行一个简单的Java客户端。 java命令实际上是由系统进程调用的。这是在Unix上。
我们遇到了X11 Display的问题。所以我们在启动文件中添加了export DISPLAY=:0.0
并解决了显示问题。现在,当从启动文件中删除export DISPLAY=:0.0
行并再次运行java客户端时,我们无法恢复到旧状态,即我们不再获得X11显示错误。所以有一些东西在系统上持续存在。有没有办法确保在运行客户端之前杀死JVM上下文?
我们已经杀死了触发java客户端的进程,然后重新启动进程以再次运行java客户端。但是没有成功回到旧州。
[编辑]我忘了提到我已经在停止文件中尝试了“取消设置DISPLAY”。在启动环境时运行启动fie,在环境关闭时运行停止文件。我也尝试过无头模式,但这对我们的程序不起作用。
答案 0 :(得分:3)
如果您之前已在当前shell中执行了export命令(甚至来自启动文件),那么该值就在您的环境中。取消它(或获得一个干净环境的新shell)是摆脱环境设置的唯一方法。
我建议在启动脚本中添加一行来回显$ DISPLAY,以便在解决问题时显示当前设置的内容。
如果您的进程实际上不需要xwindows显示,则应以无头模式启动JVM。详细信息为here。
答案 1 :(得分:2)
您可能在shell中设置了DISPLAY环境。尝试输入“export DISPLAY =”或“unset DISPLAY”。