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