运行时间执行在Mac
问题描述:
我一直在学习Java和我想提出申请,将打开其他应用程序,如在Mac终端。运行时间执行在Mac
我已经得到它的工作,我在这一点上有点困惑失败多次。
这里是我的代码
package pac;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import javax.swing.*;
public class VnET extends JFrame {
public VnET() {
JFrame frame = new JFrame("Frame");
//Optional: What happens when the frame closes?
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create components and put them in the frame.
frame.setTitle("VnET");
// Size the frame.
frame.setSize(500, 250);;
// Show it.
frame.setVisible(true);
//centers window
frame.setLocationRelativeTo(null);
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new VnET();
Runtime r = Runtime.getRuntime();
Process p = null;
try {
p = r.exec("Terminal");
p.waitFor();
} catch (Exception e) {
System.out.println("Error executing terminal");
}
System.out.println("Terminal returned"+ p.exitValue());
}
});
}
}
这是控制台日志
Error executing terminal
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at pac.VnET$1.run(VnET.java:43)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
的可能的复制[什么是空指针异常,怎么解决呢?(http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) –
“终端”是否是Mac上的有效命令?如果不是'p'将是空的。在catch块中使用printStackTrace(),可以让你更好地了解哪里出了问题。 – sreejit
哪一行是VnET上的第43行? – Frakcool