배치 파일을 실행하는 자바 웹 서비스가 있습니다. 내 컨트롤러 수업을 마쳤습니다. 컨트롤러 클래스에는 매개 변수가 있고 변수는 String fileName
입니다. 나는 그 기능을 수행하기 위해 fileName
을 만들기 위해 코드하는 법을 잘 모른다.자바에서 필요한 기능을 수행하기 위해 URL의 매개 변수를 연결하십시오.
내 코드를 표시 한 다음 fileName
이해야 할 일에 대해 설명합니다.
RunBatchFile.java
public ResultFormat runBatch(String fileName) {
String var = fileName;
String filePath = ("C:/Users/attsuap1/Desktop" + var);
try {
Process p = Runtime.getRuntime().exec(filePath);
int exitVal = p.waitFor();
return new ResultFormat(exitVal == 0);
} catch (Exception e) {
e.printStackTrace();
return new ResultFormat(false);
}
}
URL로 http://localhost:8080/runbatchfileparam/test.bat
에서 사용자 유형의 TEST.BAT 파일을 실행해야합니다 BatchFileController.java
private static final String template = "Sum, %s!";
@RequestMapping("/runbatchfileparam/{param}")
public ResultFormat runbatchFile(@PathVariable("param") String fileName) {
RunBatchFile rbf = new RunBatchFile();
return rbf.runBatch(fileName);
}
. 사용자가 test.bat 대신 test123.bat를 입력하면 test123.batch 파일을 실행해야합니다. 따라서 나는 문자열 filePath을 "C:/Users/attsuap1/Desktop/test.bat"
으로 코딩 할 수 없으므로 test.bat 파일을 실행할 것입니다. 사용자가 실행하려는 배치 파일을 선택할 수있게하고 싶습니다. 나는 이것을 달성하는 것이 쉽지 않다고 생각하지만 이것은 간단하다고 생각합니다.
String fileName
변수를 연결하여 코드가 수행해야 할 작업을 수행하도록하려면 어떻게해야합니까? 그러나 나는 그들이 원하는 결과를주지 않는 몇 가지 방법을 시도했다.
누군가가 도와 주시면 감사하겠습니다.
는 fileName' '의 값은, 세퍼레이터 ('\ '또는'/ ')로 시작합니까? 그렇지 않다면 "Desktoptest.bat"을 얻기 위해 이름을 경로에 연결합니다. –
나는 그것을 원하지 않는다. 어떻게 변경해야합니까? –
fileName을 원하는 배치 파일을 선택할 수있는 매개 변수로 지정합니다. 이제 두 개의 배치 파일 (test.bat 및 test123.bat)이 있습니다. test.bat 파일을 직접 실행하기 때문에'C :/Users/attsuap1/Desktop/test.bat'로 코딩하고 싶지 않고 매개 변수를 가질 필요가 없습니다. –