我试图从Java调用WMIC.EXE来获取电池信息。
以下是JavaX(扩展Java方言)中的源代码:http://tinybrain.de/1001824
要查看等效的Java源代码,请查看here(前60行非常重要,非常重要。)
您可以使用x30.jar运行此程序,或者只编译并运行Java source。
基本上它只生成一个进程(通过.bat文件)并获取其输出。 “反引号”功能适用于其他所有功能,包括Windows上的内容。只是没有与WMIC - 一切都挂起。
命令运行是这样的:
WMIC Path Win32_Battery Get EstimatedChargeRemaining /Format:List
在命令提示符下运行它工作正常...只是不在Java中。事实上,Java对子进程很奇怪。
有什么想法吗?感谢...
答案 0 :(得分:0)
我相信这是https://stackoverflow.com/a/13367685/3196753的副本。
报价:
在获取和使用
OutputStream
之前,您需要获取并关闭InputStream
。这将向您确认已开始的过程已经完成向该过程发送输入(在这种情况下,没有输入)。p.getOutputStream().close();
请记住,在
Process
对象上,getInputStream()
的输入来自流程的输出流,getOutputStream()
的输出进入流程的输入流。