我正在使用 NetBeans 构建一个 GUI,GUI 中的一个按钮需要使用 powershell 脚本。我正在尝试获取脚本的输出并将其放入 GUI 中的 JTextArea 中。这是我到目前为止所拥有的。我做了一些调试,它似乎挂在 while 循环中,但我对它为什么这样做感到困惑。
private void runButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("cmd powershell C:/hello1.ps1");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader reader = new BufferedReader(isr);
String line;
while ((line = reader.readLine()) != null) {
outputTextArea.setText(line);
}
reader.close();
proc.getOutputStream().close();
} catch (IOException ex) {
Logger.getLogger(BatchFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
这是一个简单的 powershell 脚本,我正在尝试让它工作。
#Filename: hello1.ps1
Write-Host "Hello World!"
#End of Script
我做了一些研究,我注意到它正在等待其他人,但这只是因为他们忘记关闭进程输出流。