2

javaの「runtime.exec」を使用して、バッチファイルを実行します。java自体を介して作成されたバッチファイル。私のクエリは実行時に作成されたバッチファイルが私のマシン(XP)とWindows Server2008R2でうまく実行されます。しかし、Windows Server 2003では、バッチファイルはクレステッドになりますが、実行されません。しかし、バッチファイルをダブルクリックすると実行されます。

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

1 に答える 1

2

cmd.exeこれは、Windows Server 2003からバッチを実行するために必要な管理者権限(の欠如)が原因である可能性があります。

方法1cmd.exeバッチジョブを実行するユーザーアカウントの読み取りおよび実行権限をプログラムに 付与します。これを行うには、次の手順に従います。

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

ユーザーを追加すると、ユーザーには読み取りおよび実行のアクセス許可が自動的に付与されます。7.続行するように求められたら、[はい]をクリックします。

方法2ファイル の読み取りおよび実行権限をcmd.exeバッチグループに付与します。これにより、すべてのバッチプロセスでコマンドプロセッサを実行できます。これを行うには、次の手順に従います。

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

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

Windows Server 2003ベースのコンピュータでバッチジョブを実行すると、「アクセスが拒否されました」というエラーメッセージが表示されます。

于 2012-04-05T05:22:38.263 に答える