Как запустить пакетный файл приложения, которое принимает изображения в качестве аргументов в Java - PullRequest
0 голосов
/ 11 марта 2012

У меня есть командный файл 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-файл. Я добавил эти 3 DLL в свой Java-проект, но все равно не получил желаемого результата.

Может кто-нибудь мне помочь?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Попробуйте добавить путь C: \ Programs \ test \ GeoMatch_demo в переменную среды PATH.

1 голос
/ 11 марта 2012

когда вы запускаете bat-файл из кода Java, вы не изменяете текущий каталог в cmd, что означает, что вы на самом деле не в C:\\programs\\test\\GeoMatch_demo\\. Таким образом, EXE-файл не может быть найден. Если вы ссылаетесь на исполняемый файл с абсолютным путем в командном файле, проблема должна исчезнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...