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

java调用别的程序,别的程序生成一个文件失败,单独运行就可以
我用vb编了一个小程序 这个程序运行后会在当前目录生成一个1.txt txt里面就是小程序的输出,可是我用java的Runtime.getRuntime().exec()来调用程序后,就没有看到那个txt文件
这个是java虚拟机的原因吗?
有什么办法可以实现调用vb小程序后生成txt?

------解决方案--------------------
搜索一下1.txt有没有在其他目录。并且调试一下你的vb程序,看看输出1.txt的情况吧。
------解决方案--------------------
要找到不行的原因才可以。
楼主找找看,到底是哪种原因:
1.exec方法的参数错误。
请楼主认真读读API,如果楼主参数中有路径,或者路径名中带空格、汉字、特殊符号什么的,
要采用那个多个参数的重名方法来调用。
2.由于当前路径不同,生成文件的路径可能发生变化。
这是最常发生的问题,楼主分析一下VB程序,看看生成文件和当前路径有无关系,查找一下看看。
3.调用exec方法后,没有等待VB程序执行完毕就将Java程序先结束了。
JVM是一个进程,调用VB,操作系统会分配一个子基础来运行VB程序,JVM是父进程。
当父进程结束时,子基础也会被回收。
楼主除了调用exec方法,还应该调用其返回值对象的一个方法来等待VB进程的结束。
------解决方案--------------------
一个简单的检测办法,去观察VB程序的日志,看VB程序是否已经被调用。