日期:2014-05-20  浏览次数:20671 次

SWT里 java调cmd命令卡死
在swt里 按钮组件添加addSelectioner监听
监听里面方法为 java运行cmd命令启动X程序。
当我点击启动程序的时候swt就卡死了,电脑没卡,用进程关了X程序,SWT就不卡,
我用个test类单独跑java调cmd命令启动程序也不卡。
请问是什么原因??我的监听方法用错了??
------最佳解决方案--------------------
说明你在  java运行cmd命令启动X程序的时候,程序阻塞了。
就是说,x程序不返回,程序就卡在那里了。
在不能改变x程序情况你可以把你的程序监听事件里面起一个新的线程去调用x程序。
这样你的主窗口就不会被阻塞。
代码如下:
    new Thread(new Runnable() {
      public void run() {
        // run X 程序;
      }
    }).start();
------其他解决方案--------------------
自行解决  waitfor()问题,结贴!
------其他解决方案--------------------
忘了刷新,已经有人回复了,是关于线程阻塞问题,分就给你。