2012-04-05 17 views
2

Javaの "runtime.exec"を使用して、バッチファイルを実行します。 私のクエリは実行時に作成されたバッチファイルは、自分のマシン(XP)とWindows Server 2008 R2上でうまく実行されます。 しかし、Windows Server 2003では、バッチファイルは威嚇されますが、実行されません。しかし、バッチファイルをダブルクリックすると実行されます。Java Windowsサーバー2003とWindowsサーバー2008のバッチファイルの問題

Process process = runtime.exec("cmd /c start /b "+batchFile.getPath()); 

答えて

2

それは2003年

方法1cmd.exeプログラムリードを付与し、ユーザーアカウントの権限を実行するためのWindowsサーバ上でcmd.exeからバッチを実行するために必要な管理者権限(の欠如)のものとすることができますバッチジョブが実行されていることを確認します。これを行うには、次の手順を実行します。

  1. [スタート]ボタンをクリックし、[エクスプローラ]をクリックします。
  2. cmd.exeファイルを見つけて右クリックします。 Cmd.exeファイルは%windir%\System32フォルダにあります。
  3. [プロパティ]をクリックします。
  4. [セキュリティ]タブをクリックします。
  5. [追加]をクリックします。
  6. [選択するオブジェクト名を入力してください]ボックスに、バッチジョブが実行されるユーザー名を入力し、[OK]を2回クリックします。

ユーザーを追加すると、ユーザーには自動的に読み取りおよび実行のアクセス許可が与えられます。 7.続行するかどうかを確認するメッセージが表示されたら、[はい]をクリックします。バッチグループへcmd.exeファイルの

方法2 グラント読み取りと実行の権限。これにより、すべてのバッチプロセスがコマンドプロセッサを実行できます。これを行うには、次の手順を実行します。

  1. [スタート]ボタンをクリックし、[エクスプローラ]をクリックします。
  2. cmd.exeファイルを見つけて右クリックします。 cmd.exeファイルは%windir%\System32フォルダーにあります。
  3. [プロパティ]をクリックします。
  4. [セキュリティ]タブをクリックします。
  5. [追加]をクリックします。
  6. [選択するオブジェクト名を入力してください]ボックスに「バッチ」と入力し、[OK]を2回クリックします。
  7. 続行するかどうかを確認するメッセージが表示されたら、[はい]をクリックします。

詳細については、次のMicrosoft KBの記事を参照してください。

"Access is denied" error message when you run a batch job on a Windows Server 2003-based computer