项目的需要是这样,用C++和opencv写的车牌检测方法,打包成一个exe文件,然后用java调用这个exe文件。这个需求本来很普通,就是个exec()函数的事,但是由于种种原因,vs2013编写的C++程序无法打包成一个可以单独执行的exe文件,这个exe放在工程目录下双击,是可以正常执行的,但是用java调用后出现了一个很奇怪的现象,在任务管理器中有进程,但是功能无法实现。
工程目录是这样:
双击的结果是这样:
调用的代码如下:
Process process= Runtime.getRuntime().exec("F:\\aa\\demo");
aa是工程目录,之所以出现这样的问题,是因为exe无法单独执行,需要读取本目录下的一些文件,而上面的代码是用来调用一些可单独执行的exe文件,然后把代码修改成这样:
Process process= Runtime.getRuntime().exec("F:\\aa\\demo", null,new File("F:\\aa"));
问题解决了,只是一句话的事,但是被着一句话卡了一整天,这就是我为什么在题目上加上debug生成的exe文件这句话,因为这时的exe文件无法单独执行。希望遇到同样问题的人能尽快找到。。。。