在静态块之后和调用main(String [])方法之前执行某些操作

时间:2014-12-22 16:25:05

标签: java swing initialization

我想在调用start()方法之前和触发每个静态块(main(String[]))之后触发static{}方法,以便Java的重要部分(如AWT / Swing)在运行该方法时功能完备。

start()加载文件和图像,设置SecurityManager并打开弹出窗口,告诉用户一切是否正确。不幸的是,当我调用JOptionPane.showMessageDialog(stuff)时会抛出异常。 http://pastebin.com/FG3y0i9Z

使用SwingUtilities.invokeLater(Runnable)不起作用并抛出相同的异常。

我认为这是因为AWT或Swing没有通过静态块正确加载自身。

我对main方法没有任何控制权:我无法修改它,我也不知道它的路径。

我有办法做到这一点吗?

2 个答案:

答案 0 :(得分:0)

您可以从最后一个静态区块中调用start

答案 1 :(得分:0)

问题不在于静态块和没有加载的东西;我遇到了问题,因为我的SecurityManager阻止了所有内容 ...我改变了处理权限的方式(白名单==>黑名单),现在就可以了!