私は、エラー、次の取得Runtime.getRuntime().exec(cmd);
なぜシステム情報を取得すると例外のヌルポイントが返されるのですか?
とシステム情報を取得するためにtrayingています
java.lang.NullPointerException
at java.lang.Runtime.exec(Runtime.java:422)
at java.lang.Runtime.exec(Runtime.java:326)
at mytest.SystemInfoToTextArea.doInBackground(SystemInfoToTextArea.java:31)
at mytest.SystemInfoToTextArea.doInBackground(SystemInfoToTextArea.java:16)
任意の提案を歓迎
クラスのコード
public class SystemInfoToTextArea extends SwingWorker<String, Void> {
private JTextArea textArea;
private String cmd;
public SystemInfoToTextArea(JTextArea textArea, String cmd) {
textArea = textArea;
cmd = cmd;
}
@Override
protected String doInBackground() throws Exception {
String outputMem = null;
try {
String lineMem;
outputMem = "";
Process procMem = Runtime.getRuntime().exec(cmd);
BufferedReader input =
new BufferedReader
(new InputStreamReader(procMem.getInputStream()));
while ((lineMem = input.readLine()) != null) {
outputMem = (lineMem + "\n");
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
return outputMem;
}
@Override
protected void done() {
super.done();
try {
textArea.append(get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
public static void main(String... args){
JFrame frame = new JFrame();
frame.setSize(700,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JTextArea textArea = new JTextArea("System info");
panel.add(textArea);
frame.setContentPane(panel);
frame.setVisible(true);
SystemInfoToTextArea systemInfoToTextArea = new SystemInfoToTextArea(textArea,"cmd /C dir");
systemInfoToTextArea.execute();
}
}
再割り当てしていない、それはノーオペレーションです。 –
私はIntellijを使用します。彼は警告も文句もしませんでした。 – itro
コンストラクタを訂正した後、'java.io.IOException:CreateProcess:free -m -t -o error = 2 \t java.lang.ProcessImpl.create(ネイティブメソッド) \t at java.lang。 ProcessImpl。(ProcessImpl.java:81)java.lang.ProcessImpl.startで \t(ProcessImpl.java:30)java.lang.ProcessBuilder.startで \t(ProcessBuilder.java:451)java.lang.Runtimeで \t .exec(Runtime.java:591)は、java.lang.Runtime.exec(Runtime.java:429)で \t mytest.SystemInfoToTextAreaでは、java.lang.Runtime.exec(Runtime.java:326) \tで\t。 doInBackground(SystemInfoToTextArea.java:31) \t ' –
itro