簡體   English   中英

java.awt.HeadlessException-未顯示Applet-第2部分

[英]java.awt.HeadlessException - Applet not displayed - Part 2

這是參考問題java.awt.HeadlessException-未顯示Applet。 java.awt.HeadlessException-未顯示小程序

我在tomcat的startup.sh文件中添加了“ export DISPLAY =:0.0”之后,HeadlessException就消失了。 現在,部分代碼在作為單獨服務器的批處理服務器上運行。 在批處理服務器上調用代碼時,會發生相同的HeadlessException。 當我在批處理服務器的啟動文件中添加相同的“ export DISPLAY =:0.0”時,異常消失了,但它為批處理服務器上運行的其他(非Java)應用程序帶來了問題。 這可能是因為我們覆蓋了適用於其他應用程序的顯示。

接下來,我將JAVA_OPTS =“-Djava.awt.headless = true”導出到批處理服務器的啟動文件,但是沒有用。 我看到Sun的以下鏈接說,代碼應檢查無頭異常。

http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html

那么捕獲無頭異常會使其起作用嗎? 喜歡:

try {

 //Code that throws headless exception

} catch (HeadlessException e) {

  printStacktrace(); //basically do nothing
}

您可以捕獲該異常,或者可以通過首先檢查來避免該異常:

if (! java.awt.GraphicsEnvironment.isHeadless()) {
    // code that throws headless exception
} else {
  log.info("Skipping GUI portion")
}

不要在沒人要看的服務器上設置DISPLAY,否則您可能會永遠等待某人在對話框中單擊“確定”,而沒人可以看到。

暫無
暫無

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

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