簡體   English   中英

設置了Linux Java程序X11 DISPLAY變量,但是

[英]Linux Java program X11 DISPLAY variable was set, but

我知道這是一個經常性的問題,但尚未找到任何答案。

我在Linux服務器(Ubuntu 14.04 LTS)上,並且我有一個Java應用程序,該應用程序調用另一個程序來執行某些操作,第一個程序運行正常,但是第二個程序使用GUI,當我調用它時,我就聲名狼藉錯誤“未設置X11 DISPLAY變量,但是該程序執行了需要它的操作。”。 我已經有一個Xvfb實例正在運行,並且已導出DISPLAY。

Xvfb :99 &
export DISPLAY=:99

如果我做

echo $DISPLAY

我得到:99

我可以通過命令行運行被調用的Java應用程序,並且可以運行,但是當它是另一個調用它的Java應用程序時,則無法運行。 當我從另一個Java應用程序調用jar時,為什么它沒有“看到” DISPLAY變量? 我該如何解決呢?

注意:我使用ProcessBuilder來調用它。

由於您使用ProcessBuilder且不需要顯示,因此您可以在.start()過程之前嘗試執行以下操作:

pb.environment().remove("DISPLAY");

是的,沒錯, environment()返回該進程的環境變量的讀寫視圖 ...

所以這實際上解決了問題:

processBuilder.environment()。put(“ DISPLAY”,“:99”);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM