使用java的“runtime.exec”我执行一个批处理文件。通过java本身创建的批处理文件。 我的查询是在运行时创建的批处理文件在我的计算机(XP)和 Windows Server 2008 R2 上执行良好。 但在 Windows Server 2003 上,批处理文件得到顶峰但不执行。但是如果我双击它执行的批处理文件。
Process process = runtime.exec("cmd /c start /b "+batchFile.getPath());
最佳答案
这可能是因为(缺乏)在 Windows Server 2003 上从 cmd.exe
运行批处理所需的管理员权限。
方法1
授予 cmd.exe
程序对运行批处理作业的用户帐户的读取和执行权限。为此,请按照下列步骤操作:
- 单击“开始”,然后单击“Windows 资源管理器”。
- 找到并右键单击
cmd.exe
文件。 Cmd.exe 文件位于%windir%\System32
文件夹中。 - 点击“属性”。
- 点击“安全”选项卡。
- 点击“添加”。
- 在“输入要选择的对象名称”框中,键入运行批处理作业所用的用户名,然后单击“确定”两次。
注意 当您添加用户时,系统会自动授予该用户读取和执行权限。 7. 当系统提示您继续时,单击"is"。
方法2
将 cmd.exe
文件的读取和执行权限授予 Batch 组。这允许所有批处理进程运行命令处理器。为此,请按照下列步骤操作:
- 单击“开始”,然后单击“Windows 资源管理器”。
- 找到并右键单击
cmd.exe
文件。cmd.exe
文件位于%windir%\System32
文件夹中。 - 点击“属性”。
- 点击“安全”选项卡。
- 点击“添加”。
- 在“输入要选择的对象名称”框中,键入“Batch”,然后单击“确定”两次。
- 当系统提示您继续时,单击"is"。
有关详细信息,请参阅以下 Microsoft 知识库文章:
"Access is denied" error message when you run a batch job on a Windows Server 2003-based computer
关于Windows Server 2003 与 Windows Server 2008 上的 Java Run 批处理文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022894/