Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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调用WMIC.EXE(挂起)_Java_Windows_Subprocess - Fatal编程技术网

从Java调用WMIC.EXE(挂起)

从Java调用WMIC.EXE(挂起),java,windows,subprocess,Java,Windows,Subprocess,我正在尝试从Java调用WMIC.EXE以获取电池信息 以下是JavaX(一种扩展的Java方言)的源代码: 要查看等效的Java源代码,请查看(仅前60行非常重要) 您可以使用或仅通过编译并运行 基本上,它只生成一个进程(通过.bat文件)并获得其输出。“backtick”功能可以很好地处理其他所有内容,包括Windows上的内容。只是WMIC不行——一切都挂起了 命令运行如下: WMIC Path Win32_Battery Get EstimatedChargeRemaining /For

我正在尝试从Java调用WMIC.EXE以获取电池信息

以下是JavaX(一种扩展的Java方言)的源代码:

要查看等效的Java源代码,请查看(仅前60行非常重要)

您可以使用或仅通过编译并运行

基本上,它只生成一个进程(通过.bat文件)并获得其输出。“backtick”功能可以很好地处理其他所有内容,包括Windows上的内容。只是WMIC不行——一切都挂起了

命令运行如下:

WMIC Path Win32_Battery Get EstimatedChargeRemaining /Format:List
在命令提示符下运行此命令效果良好。。。只是不是在Java中。Java对于子进程来说真的很奇怪


有什么想法吗?谢谢…

我相信这是一个复制品

引述:

在获取和使用
InputStream
之前,您需要获取并关闭
OutputStream
。这将向流程确认您已经开始向流程发送输入(在本例中,没有输入)

p.getOutputStream().close();
请记住,在
Process
对象上,
getInputStream()
输入来自流程的输出流,而
getOutputStream()
输出则进入流程的输入流

p.getOutputStream().close();

我相信这是一个复制品

引述:

在获取和使用
InputStream
之前,您需要获取并关闭
OutputStream
。这将向流程确认您已经开始向流程发送输入(在本例中,没有输入)

p.getOutputStream().close();
请记住,在
Process
对象上,
getInputStream()
输入来自流程的输出流,而
getOutputStream()
输出则进入流程的输入流

p.getOutputStream().close();