Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cmd.exe意外挂起取决于我使用的文件位于何处大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我所见过的最奇怪的事情之一。 虑下面的Java程序:

import java.io.IOException; public class StrangeError { public static void main(String[] args) { try { Process process = new ProcessBuilder( "cmd","/c",""C:\Program Files (x86)\Microsoft Visual studio 14.0\VC\vcvarsall.bat" amd64 && set" ).start(); process.waitFor(); } catch (IOException|InterruptedException E) { System.out.println(e.getmessage()); } } }

我用javac StrangeError.java编译它,将它复制到运行Windows Server 2012 R2的服务器上,然后用java StrangeError运行它。

这是事情开始变得怪异的地方。 程序挂起,等待它产生的过程完成。 这不是预期的行为,因为vcvarsall.bat脚本应该立即完成并set 。

于是我开始玩,发现了以下几点:

closures应用程序和结束从任务pipe理器的过程有什么区别?

为什么从孩子getppid()返回1

窗口歧视java的processids

进程永久停留在D状态

为64位设备驱动程序公开32/64位dll API?

删除set会导致vcvarsall.bat终止

删除vcvarsall.bat会导致终止

用||代替&& 导致一切正确终止

将vcvarsall.bat复制到桌面上的位置并更改path会导致所有内容正确终止

在Go中使用相同的命令几乎等效的程序工作正常

我得到这个输出,如果我运行WinDbg中的一切,并挂起后中断的过程

这似乎不能从MSVC2013的vcvarsall.bat重现,但也可以在Windows 10上重现MSVC2015

原来的程序到底怎么了? 如果将整个命令( cmd /c "C:... ) cmd /c "C:...复制并粘贴到“开始” – >“运行”中,则会立即启动cmd并终止。

这是Java的错误? 这是Windows的错误吗?

64位系统上的NULL定义问题

我怎么知道一个进程正在运行的核心?

如何进一步debugging(win7 64bit,py2.7)的SendKeysCtypes?

Linux,waitpid,WNOHANG,subprocess,僵尸

列出所有进程?

这是Java的错误? 这是Windows的错误吗?

这是你的代码中的一个错误

大佬总结

以上是大佬教程为你收集整理的cmd.exe意外挂起取决于我使用的文件位于何处全部内容,希望文章能够帮你解决cmd.exe意外挂起取决于我使用的文件位于何处所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: