私はバッチファイルを実行するJava Webサービスを持っています。私はコントローラクラスを終了しました。コントローラクラスにはパラメータがあり、変数はString fileName
です。私はfileName
がその機能を実行するようにコードする方法がわかりません。Javaの必要な機能を実行する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を実行するバッチファイルを選択できるようにするパラメータにするだけです。今私は2つのバッチファイル(test.batとtest123.bat)があります。 test.batファイルを直接実行するので、 'C:/ Users/attsuap1/Desktop/test.bat'のようにコード化したくないので、パラメータを持つ必要はありません –