2013-01-25 82 views
1


我正在編寫一個Java程序,它檢查我的網站的一些統計信息。如果網站存在某些問題,程序應該指出警報。由於我正在使用Windows Vista計算機,因此我認爲最簡單的方法是從Windows計劃程序創建一個每n分鐘觸發一次的任務。
奇怪的是,任務計劃程序無法顯示Java GUI。程序停止運行(使用java或javaw運行)並且不顯示任何內容。
這裏有一個小例子:從Windows任務計劃程序運行Java GUI應用程序不起作用

import javax.swing.JOptionPane; 
public class Test { 
public static void main(String[] args) { 
    try { 
     JOptionPane.showMessageDialog(null, "Message text", "Title", JOptionPane.ERROR_MESSAGE); 
     System.out.println("Done"); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

}

我也嘗試了一些其他的Swing組件,但它只是不顯示任何內容。看起來它缺少圖形界面。 任何線索? 由於最大

+0

您是如何在Windows任務計劃程序中指定應用程序和參數的? –

+0

特別感興趣的是哪個用戶正在運行該任務。也許你的程序將對話框顯示爲'LocalSystem'或類似的東西。 – SJuan76

+0

我使用包含「C:\ Program Files \ Java \ jre6 \ bin \ javaw」-classpath myapp.jar的批處理文件啓動程序測試 我已檢查程序是否實際啓動(添加了文件日誌)但無法顯示GUI –

回答

2

有兩個問題

  1. 從JOptionPane中最重要的,JOptionPane塊代碼的執行,直到事件被激發,簡單的,這是基本的屬性塊代碼的執行,並等待用戶的操作

  2. JOptionPane must be invoked from Initial Thread,否則什麼也沒有發生,在屏幕上不可見,or (MetalLookAndFeel) only Toolbar without content is visible on the screen (came from Native OS)

+0

感謝您的回覆。請參閱 http://docs.oracle.com/javase/7/docs/api/javax/swing/SwingUtilities中的示例.html#invokeAndWait%28java.lang.Runnable%29 但是它沒有顯示任何內容:-( –

+0

我從來沒有find_out在'Java6'和更新的版本中使用'InvokeAndWait'(我的觀點)的地方,必須是隱藏在你的代碼中的另一個問題,也許用普通的'JDialog'代替'JOptionPane'可能是骯髒的破解,但我懷疑... – mKorbel

+0

說實話,因爲我無法得到它的工作,我已經解決了它通過啓動一個指向幫助頁面的瀏覽器新窗口(而不是Java Swing GUI)。非常感謝您的幫助。 –

相關問題