java - 从java代码调用exe文件

标签 java exec sift

我正在尝试使用此处提供的 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/

相关文章:

java - 尽管我们从另一个线程更新 GUI 组件,但没有遇到任何 GUI 卡住问题

java - 驱动程序可执行文件不存在 : Selenium Firefox

java - 当使用 lambda 表达式而不是匿名内部类时,Spring 无法确定泛型类型

java - 错误的序数绑定(bind)和命名绑定(bind)无法组合异常

Java Runtime.exec 在 Linux 中因空间而失败

python - 如何[使用 Python] 创建 SIFT 的描述符数据库?

python - 如何使用opencv拼接多张图像?

python - manage.py 会改变它的 PID 吗?

php - 使用 exec 将数据附加到不在当前目录中的文件

opencv - OpenCV 3 中 SIFT 的示例代码?