Windows Server 2003 与 Windows Server 2008 上的 Java Run 批处理文件问题

标签 java batch-file

使用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 程序对运行批处理作业的用户帐户的读取和执行权限。为此,请按照下列步骤操作:

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

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

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

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

相关文章:

android 中的 Java 正则表达式

c++ - 使用 qt 作为新进程执行批处理文件

batch-file - 如何在批处理文件中设置参数等于VB6变量

java - getPath() 不返回斜杠? ( window )

java - Android 7.0 不显示多个权限请求

javascript - 是否可以在没有 ActiveX 的情况下运行 JS/html 中的批处理文件?

windows - pushd 在延迟扩展的批处理文件中不起作用

windows - 修改系统生成的错误消息批处理文件

java - Spring @Async 被忽略

java - 如何使用 Java 8/stream API 列出、映射和 "print if count>0"?