2017-12-12 11 views
-1

私はコマンドcopy NUL test.txtを持つバッチファイル(test.bat)を持っています。私はそれを実行し、WebブラウザでURLを入力すると、http://localhost:8080/runbatchfileparamのようなJavaプログラムがありますが、結果は{"result":true}または{"result":false}のいずれかになります。 Trueは、Javaアプリケーションがバッチファイルを正しく実行したことを意味します(test.txtはディレクトリの下に作成されます)。Javaのパラメータを使用したバッチファイルの検索

私が今したいことは、私はjavaプログラムがパラメータを取ることができるようにしたいと思います。例えば。 WebブラウザにURLとしてhttp://localhost:8080/runbatchfileparam/testabc.batと入力し、testabc.batファイルが見つかって実行された場合(デスクトップの場合)は{"result":true}、testabc.batファイルが見つからない場合は{"result":false}となります。 (注:すべてのバッチファイルは、デスクトップのファイルパスの下に作成されます)

パラメータを入力して@PathVariableを実行するようにコントローラを編集しました。私のコードでは、fileName変数は、私が作成したバッチファイル名(test.bat、test123.bat)を指します。test.batのコマンド:copy NUL test.txtコマンド:test123.bat:copy NUL test123.txt。しかし、私は結果を{"result":false}のままにしています。つまり、Javaプログラムはバッチファイルを見つけて実行できません。ここで

は私のコードです:

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); 
    } 
} 

ResultFormat.java

private boolean result; 

public ResultFormat(boolean result) { 
    this.result = result; 
} 

public boolean getResult() { 
    return result; 
} 

BatchFileController

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); 
} 

Application.java

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
} 

私は編集することが何をしなければならないのか、私は私が望むものを達成するためのコードに何を追加する必要がありますか?

答えて

0

この行の後:filePathの内容を印刷する

String filePath = "C:/Users/attsuap1/Desktop" + var; 

てみてください、私はあなたがこのような何かを思い付くことを疑う:

C:/Users/attsuap1/Desktoptestabc.bat

+0

こんにちは、ご協力いただきありがとうございます。もっと説明していただけますか?私はこれに非常に新しいので、私はabit混乱を感じている –

関連する問題