Я создал весенний загрузочный проект, который я запускаю на локальном tomcat (я планирую развернуть его на веб-сервере).В рамках этого проекта я создал rest-сервис, который должен выполнять файл .bat.
мои остальные службы выглядят так (ни одна из них не работает)
@RequestMapping(value = "/esc", method= RequestMethod.GET)
public String esc() throws IOException, InterruptedException {
String folder = "P:\\Documents\\testcmd";
String[] cmdarray = new String[]{"cmd -c","dosomething.cmd"};
ProcessBuilder processBuilder = new ProcessBuilder( cmdarray );
processBuilder.directory(new File(folder));
Process process = processBuilder.start();
int exitCode = -1;
boolean finished = false;
while ( !finished ) {
exitCode = process.waitFor();
finished = true;
}
return folder;
}
@RequestMapping(value = "/ex", method= RequestMethod.GET)
public String executeShellScript(){
//final String shCmd = "/bin/bash -c helloworld.sh";
System.out.println("Working Directory = " +
System.getProperty("user.dir"));
final String shCmd = "cmd -c P:/Documents/testcmd/dosomething.cmd";
String output = executeCommand(shCmd);
return output;
}
private String executeCommand(String command){
Process p;
InputStream in = null;
String value = "";
try {
p = Runtime.getRuntime().exec(command);
in = p.getInputStream();
int ch;
while((ch = in.read()) != -1) {
value = String.valueOf((char)ch);
}
}catch (IOException e){
e.printStackTrace();
}
return value;
}
Я пробовал это с помощью компоновщика процессов и во время выполнения.Файл, который я хочу выполнить, находится в этой папке: «P: \ Documents \ testcmd»
Можно ли даже выполнить локальный файл с сервером Tomcat?