将URL中的参数链接到java中的必需函数
我有一个执行批处理文件的JavaWeb服务。我已经完成了我的控制器课程。在控制器类中,有一个参数,变量为将URL中的参数链接到java中的必需函数,java,batch-file,Java,Batch File,我有一个执行批处理文件的JavaWeb服务。我已经完成了我的控制器课程。在控制器类中,有一个参数,变量为stringfilename。我不知道如何编写代码使文件名执行其功能 我将显示我的代码,然后解释fileName应该做什么 RunBatchFile.java public ResultFormat runBatch(String fileName) { String var = fileName; String filePath = ("C:/Users/attsuap1/
stringfilename
。我不知道如何编写代码使文件名
执行其功能
我将显示我的代码,然后解释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);
}
}
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);
}
BatchFileController.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);
}
}
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);
}
当用户键入http://localhost:8080/runbatchfileparam/test.bat
作为URL,必须执行test.bat文件。当用户键入test123.bat而不是test.bat时,必须执行test123.batch文件。因此,我无法将字符串文件路径编码为“C:/Users/attsuap1/Desktop/test.bat”
,因为这将执行test.bat文件。我希望允许用户选择要执行的批处理文件。我认为这很容易做到,但我不知道如何做到这一点
如何编写代码来链接字符串文件名
变量,使其执行它应该执行的操作?我尝试了一些方法,但是它们没有给出我想要的结果
有人请帮帮我,非常感谢。我想你已经完成了这里的工作 有两种方法可以执行所需的批处理文件
@RequestMapping("/runbatchfileparam/{param:.+}")
public ResultFormat runbatchFile(@PathVariable("param") String fileName)
{
RunBatchFile rbf = new RunBatchFile();
return rbf.runBatch(fileName);
}
fileName
的值是否以分隔符(\
或/
)开头?如果不是,您将名称连接到路径以获得“Desktoptest.bat”。我不希望这样。如何更改itI我希望文件名只是一个参数,允许用户选择要执行的批处理文件。现在我有两个批处理文件(test.bat和test123.bat)。我不想编码为C:/Users/attsuap1/Desktop/test.bat
,因为这将直接执行test.bat文件,因此没有必要使用parameter@KlitosKyriacou所以,是的,它有一个分隔符,我不希望它被连接起来。非常感谢您的帮助。我将尝试此方法。批处理文件无法执行。如果我使用第一种方法,我只需在URL中键入http://localhost:8080/runbatchfileparam/test123
没有.bat
?我试过了,但批处理文件仍然没有执行。您看到了什么错误?我认为您的字符串文件路径=(“C:/Users/attsuap1/Desktop”中缺少了一个正斜杠,在Desktop之后应该有“/”字符串文件路径=(“C:/Users/attsuap1/Desktop/”