2013-01-25 83 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)。非常感谢您的帮助。 –

相关问题