首页 > 解决方案 > 使用批处理脚本中的参数运行 exe 与从应用程序运行

问题描述

我有一个非常奇怪的问题,我无法解决。基本上,我有一个运行的 bat 脚本:

cmd /c ""C:\Program Files (x86)\XX\YYY\EEE\int.exe"" 参数1 参数2 参数3

这可以正常工作并启动int.exe,它会根据参数启动另外两个 3rd 方应用程序。

然后我也运行相同的命令,但从我们的应用程序基于以下:

var CMD = "\"\"C:\Program Files (x86)\XX\YYY\EEE\int.exe\"\"";

...Runtime.getRuntime().exec("cmd /c " +CMD + " parameter1 parameter2 parameter3 ");

这也有效,并且 int.exe 使用正确的参数正确启动。我可以看到,在查看任务管理器时,两个 int.exe 启动的命令行是完全相同的。但是,当从 runtime exec 启动启动时,从我们的应用程序中,只有在 int.exe 运行后应该启动的两个 3rd 方应用程序之一会启动。我就是无法理解这怎么可能。int.exe 的运行方式完全相同,为什么上面的第二个示例也没有启动第二个应用程序?有人知道有什么区别吗?

编辑:我刚刚看到,如果我将int.exe更改为始终以管理员身份运行,它将成功地从 java 运行这两个应用程序。这很奇怪,因为我可以运行 cmd 脚本,即使我在操作系统级别使用非管理员帐户,它也可以工作

标签: javabatch-file

解决方案


推荐阅读