简单的swing应用程序中的java.awt.HeadlessException

时间:2014-07-11 03:25:14

标签: java linux swing eclipse-juno headless

我刚安装了Eclipse Juno IDE以供Java使用。

我似乎无法让任何GUI组件显示运行这个简单的测试:

public class Display extends Canvas {   
    public static final int height = 600;
    public static final int width = 800;
    private static final JFrame frame = new JFrame();

    public static void main(String[] args) {
        Display display = new Display();        
        frame.setLocationRelativeTo(null);
        frame.setSize(width,height);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.add(display);
        frame.pack();
        frame.setVisible(true);
    }
}

我得到的错误如下:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
    at java.awt.Window.<init>(Window.java:536)
    at java.awt.Frame.<init>(Frame.java:420)
    at java.awt.Frame.<init>(Frame.java:385)
    at javax.swing.JFrame.<init>(JFrame.java:181)
    at com.alanjz.sp.Display.<clinit>(Display.java:9)

我安装了以下java版本(我刚刚更换了OpenJDK以查看是否可以修复它):

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

我不知道为什么Eclipse认为我有一个无头的运行时,因为该项目使用默认的JDK(java版本&#34; 1.8.0_05&#34;)

我正在运行64位Ubuntu Linux。

更新:这可能是我的IDE的问题,因为我能够从另一个IDE(BlueJ)运行代码

我的eclipse.ini文件的内容:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.7
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m

0 个答案:

没有答案