Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java 7或更高版本的Runtime.process不能同时生成多个ntvdm?_Java_Windows_Cmd_16 Bit_Ntvdm - Fatal编程技术网

为什么Java 7或更高版本的Runtime.process不能同时生成多个ntvdm?

为什么Java 7或更高版本的Runtime.process不能同时生成多个ntvdm?,java,windows,cmd,16-bit,ntvdm,Java,Windows,Cmd,16 Bit,Ntvdm,运行在32位Windows Server 2007标准Service Pack 2上,使用Intel XEON CPU 我在令人羡慕的职位上工作,拥有必须运行16位软件的服务器软件…: 我们有一个服务器,通过套接字向本地用户提供16位程序 以下是设置: Java服务器程序启动cmd.exe\C batchfile.bat进程。然后,在该batchfile.bat中,它设置并运行一个实际的16位可执行文件pgm.exe,用于所有目的 然后它侦听请求并根据需要生成另一个请求 现在,使用JVM1.6版

运行在32位Windows Server 2007标准Service Pack 2上,使用Intel XEON CPU

我在令人羡慕的职位上工作,拥有必须运行16位软件的服务器软件…:

我们有一个服务器,通过套接字向本地用户提供16位程序

以下是设置:

Java服务器程序启动cmd.exe\C batchfile.bat进程。然后,在该batchfile.bat中,它设置并运行一个实际的16位可执行文件pgm.exe,用于所有目的

然后它侦听请求并根据需要生成另一个请求

现在,使用JVM1.6版本的运行时,这一点非常有效。然而,在Java 7和Java 8中,当batchfile.bat实际尝试启动16位exe程序时,它挂起

使用TaskManager,我们可以看到cmd.exe是并行生成的。但在当前cmd.exe离开16位程序ntvdm.exe关闭之前,下一个cmd.exe将冻结锁定?并在运行16位exe时暂停

线索?这些Java版本之间发生了一些变化,这对我们来说完全是个谜


所以,为什么Java 7和Java 8不能使用Runtime.Process同时启动两个批处理文件,然后在批处理文件调用16位exe时也能正确运行它们?

能否提供用于启动cmd.exe进程的Java代码的源代码片段?Windows事件记录器中是否显示了任何事件,以解决cmd.exe进程可能出现的问题ntvdm?对不起,没有你需要的代码片段。正在正确调用bat文件cmd.exe\c somebat.bat args。。。并且它在<1.7 JVM上已经投入生产8年了。BAT文件运行良好,即使在1.7版本中,也是BAT中调用的16位exe失败。已检查事件日志。找不到任何…另一个问题是这是32位还是64位环境。