我正在尝试使用此处提供的 colosift 检测器:colorDescriptor 。我实际上尝试从 java 调用可执行 colorDescriptror.exe 文件。我已经使用 bat 文件运行它,我只想从我的 java 代码中调用 exe。我的代码如下:
Process process = new ProcessBuilder("colorDescriptor.exe", "image.jpg", " --detector densesampling "," --ds_spacing 6", " --ds_scales 1.2 "," --descriptor opponentsift ", " --output out.descr").start();
InputStream is = (InputStream) process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
可执行文件似乎可以运行,但我从 colorift 代码中收到错误:警告:没有可写入的输出文件。因此,我想知道哪种方法是在此处解析可执行文件中的参数的正确方法。
工作命令:
colorDescriptor image.jpg --detector densesampling --ds_spacing 6 --ds_scales 1.2 --descriptor opponentsift --output out.descr
最佳答案
将参数对拆分为单独的参数,且不带前导和尾随空格。例如:
" --detector densesampling "
应该是:
"--detector", "densesampling"
对其他参数对进行相同的更改。否则,发布代码中的参数对将作为单个参数发送到底层程序,而程序将无法识别该参数。
关于java - 从java代码调用exe文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22831705/