早上来公司,继续昨天的工作。新的插件机制,方案是插件库+插件程序的方式,前者通过调用系统命令方式调用后者。吾想多插件主体框架已经完成了,那么界面能不能由一个简单的按钮,换成泰山OFFICE呢?于是就动手,把测试代码(一个面板上加个按钮)恢复成主程序……然后卡死,连网页上的文字都不能选择。

  • 插件程序问题?改成昨天的样子,一运行,确实没有画面。于是研究了一下,增加一个setVisible(true)就有画面。这就奇怪了,老的机制不需要这个?或者这个代码被改了?或者新机制就需要增加setVisible()?
  • 再运行还是卡死(偶尔不卡死)。那是插件库不对?回滚一下,还是卡死。
  • 二者交互的参数不对?于是在主程序中加了个输出一下,好神奇,功能正常!于是就怀疑,是System.out.println()解决了死机问题。经过确认,结论不变。

  初步怀疑,应该是线程问题。于是搞了个线程,在线程中加载,还是死(直接运行插件主体就正常)。

  回头再研究一下。