为什么Java 7或更高版本的Runtime.process不能同时生成多个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版本的运行时,这一点非常有效。然而,在Java 7和Java 8中,当batchfile.bat实际尝试启动16位exe程序时,它挂起 使用TaskManager,我们可以看到cmd.exe是并行生成的。但在当前cmd.exe离开16位程序ntvdm.exe关闭之前,下一个cmd.exe将冻结锁定?并在运行16位exe时暂停 线索?这些Java版本之间发生了一些变化,这对我们来说完全是个谜为什么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版
所以,为什么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位环境。