如何运行将图像作为参数在java中的应用程序的批处理文件

时间:2012-03-11 12:11:02

标签: java batch-file

我有一个批处理文件run.bat,需要很多参数才能运行。它是名为GeoMatch的应用程序的一部分,我的GeoMatch.exe与.bat文件位于同一文件夹中。

为了运行应用程序,我需要运行批处理文件。

通过在Windows中使用命令提示符,我按如下方式运行批处理文件:

 C:\programs\test\GeoMatch_demo>GeoMatch -t template.jpg -1 10 -h 100 -s search1.
 jpg -m 0.7 -g 0.9

我得到了我想要的输出。但是,当我尝试从Java Application运行相同的操作时,我无法获得所需的结果。

我的Java代码:

   import java.io.*;
   import java.lang.*;

  public class BatchDemo
    { 
       public static void main(String args[]) throws IOException
      { 
        try{
         String cmd;

           try { 

         String[] command = { "cmd.exe", "/C", "Start", "C:\\programs\\test\\GeoMatch_demo\\run.bat","C:\\programs\test\\GeoMatch_demo\\Search1.jpg","C:\\programs\\test\\GeoMatch_demo\\template.jpg"};
           Runtime r = Runtime.getRuntime();
           Process p = r.exec(command);
           p.waitFor();

            } catch (Exception e) 
            {

            System.out.println("Execution error");} 
        }
      catch(Exception e)
       {
     e.printStackTrace();
      }
  }
}

另外,要运行此.bat文件,我们需要3个DLL与.bat文件位于同一文件夹中。我已经在我的Java项目中添加了这3个DLL,但我仍然没有得到所需的结果。

有人可以帮助我吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

当您从java代码执行bat文件时,您不会更改cmd中的当前目录,这意味着您实际上并不在C:\\programs\\test\\GeoMatch_demo\\中。所以无法找到exe文件。如果在批处理文件中引用具有绝对路径的exe文件,问题就会消失。

答案 1 :(得分:1)

尝试将路径C:\ programs \ test \ GeoMatch_demo添加到PATH环境变量中。