2

使用java的“runtime.exec”我执行一个批处理文件。通过java本身创建的批处理文件。我的查询是在运行时创建的批处理文件在我的机器(XP)和 Windows Server 2008 R2 上执行良好。但是在 Windows Server 2003 上,批处理文件得到了顶饰,但它没有执行。但是如果我双击它执行的批处理文件。

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

1 回答 1

2

cmd.exe这可能是因为在 Windows Server 2003 上运行批处理所需的(缺少)管理员权限。

方法 1为运行批处理作业的用户帐户 授予cmd.exe程序读取和执行权限。为此,请按照下列步骤操作:

  1. 单击开始,然后单击 Windows 资源管理器。
  2. 找到并右键单击该cmd.exe文件。Cmd.exe 文件位于该%windir%\System32文件夹中。
  3. 单击属性。
  4. 单击安全选项卡。
  5. 单击添加。
  6. 在“输入要选择的对象名称”框中,键入运行批处理作业的用户名,然后单击“确定”两次。

注意添加用户时,会自动授予用户读取和执行权限。7. 当系统提示您继续时,单击是。

方法 2 将文件的读取和执行权限授予cmd.exe批处理组。这允许所有批处理进程运行命令处理器。为此,请按照下列步骤操作:

  1. 单击开始,然后单击 Windows 资源管理器。
  2. 找到并右键单击该cmd.exe文件。该cmd.exe文件位于%windir%\System32文件夹中。
  3. 单击属性。
  4. 单击安全选项卡。
  5. 单击添加。
  6. 在“输入要选择的对象名称”框中,键入 Batch,然后单击“确定”两次。
  7. 当系统提示您继续时,单击是。

有关详细信息,请参阅以下 Microsoft 知识库文章:

在基于 Windows Server 2003 的计算机上运行批处理作业时出现“拒绝访问”错误消息

于 2012-04-05T05:22:38.263 回答