2012-04-05 92 views
2

使用java的“runtime.exec”我执行批处理文件。通过java本身创建批处理文件。 我的查询是在运行时创建的批处理文件在我的机器(XP)和Windows Server 2008 R2上执行得很好。 但是,在Windows Server 2003批处理文件获取冠冕堂皇,但它不执行。但是,如果我双击它执行的批处理文件。Java在Windows Server 2003与Windows Server 2008上运行批处理文件问题

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

回答

2

这可能是因为(缺乏)的Windows服务器上运行,从cmd.exe批次需要使用管理员权限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. 在输入对象名称来选择框中键入批量,然后单击确定两次。
  7. 当系统提示您继续时,请单击是。

欲了解更多信息,请参见下面的Microsoft知识库文章:

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

相关问题