我有一个批处理文件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,但我仍然没有得到所需的结果。
有人可以帮助我吗?
提前致谢
答案 0 :(得分:1)
当您从java代码执行bat文件时,您不会更改cmd
中的当前目录,这意味着您实际上并不在C:\\programs\\test\\GeoMatch_demo\\
中。所以无法找到exe文件。如果在批处理文件中引用具有绝对路径的exe文件,问题就会消失。
答案 1 :(得分:1)
尝试将路径C:\ programs \ test \ GeoMatch_demo添加到PATH环境变量中。