私はWindowsのバッチプログラミングに全く新しいです。 私が達成したいのは、Javaアプリケーションの起動スクリプトを書くことです。 [...引数]Windowsバッチ&java:-XX:OnOutOfMemoryErrorコマンドとバッチパラメータを組み合わせる
(クラスを実行する)
またはJavaをJavaの[-options]クラス:しかし、それは、Javaアプリケーションを起動せず、むしろ
使用法を出力します[-options] -jar jarファイル[引数...]
(jarファイルを実行する)
...
は、自分のパラメータが正しく認識されないことを示します。ここで
は、動作していないスクリプトのための私のMCVEです:本当のシナリオでは
set memory=600000
java -XX:OnOutOfMemoryError="taskkill /PID %p" -Xmx%memory%K -jar MyApp.jar
、memory
は、アプリケーションに最適な最大ヒープサイズを設定するように計算されます。
両方のパラメータのいずれかを外しておくと、アプリが起動します。だから、
java -XX:OnOutOfMemoryError="taskkill /PID %p" -jar MyApp.jar
と
set memory=600000
java -Xmx%memory%K -jar MyApp.jar
作品が、私は両方のパラメータは、1回の呼び出しで作業する必要があります。
@echo on'の/ '@は、あなたにoff'エコー'入れてみてくださいscript([here here](http://stackoverflow.com/a/10237457/3788176)を参照してください))、実際に "両方のパラメータ"の場合にどのコマンドが実行されているかを確認してください。 –
入力いただきありがとうございます! '@echo on'を使うと、' '-XX:OnOutOfMemoryError =" taskkill/PID memoryK -jar MyApp.jar'という印が表示されます。これはもはや閉じていない '' 'と何らかの間違いを示します。追加されていない( '%memory%)' ... –
'%p'の'% 'は置換のために' '%' 'とみなされているようです - ' %% 'は単一の'% 'のトークンです(' printf'のようなメソッド)。 –