Java有什么方法可以不要以子进程的方式运行外部程序?
因为只有我运行的程序关闭后,我的Java程序才能退出!如何才能不是子进程?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【myplxdm】截止到2008-06-26 17:56:07的历史汇总数据(不包括此帖):
    发帖数:36                 发帖分:1220               
    结贴数:36                 结贴分:1220               
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    你有被调程序的API和类库吗?(xp下的DLL,EXE文件以及调用文档等)如有,试过java本地接口(JNI)了吗?
      

  3.   

    我现在是用Java去调用另外一个EXE,由这个EXE再去执行我想执行的程序,在EXE中是异步的。没办法就是麻烦
      

  4.   

    我没试过,如果确实有要求,我的提供的研究思路如下(不保证成功哦):1、如有EXE的api,看看这个api能否给你程序结束的调用(应该是回调callback),如有,对这个回调建立JNI即可;
    2、如果没有EXE的api,可以考虑操作系统的接口,exe应该是windows平台上的,每一个windows程序启动后,至少都会在windows任务管理器中留下显示为一个进程,如果能找到任务管理器的api接口,在就可以对这个接口建立JNI,程序中定期(例如每100毫秒)检查一下这个进程是否存在,只有没发现进程时,才提供退出程序的接口。
      

  5.   

    1、如有EXE的api,看看这个api能否给你程序结束的调用(应该是回调callback),如有,对这个回调建立JNI即可; 
    这个似乎可行,不过我不知道怎么做
      

  6.   

    调用EXE可以
    String[] cmd = {"exe绝对路径","参数。。"};
    Runtime rt = Runtime.getRuntime();
    Process process = rt.exec(cmd);
    process.waitFor(); 
      

  7.   

    如果要用JIN我觉得写一个非常简单的执行EXE就可以了,只要一句代码就行。
    Java本身应该不支持独立进程的创建
      

  8.   

    你这个是直接用外部程序,java是控制不了的,你可以试试,再打开任务管理器看看