在执行loadLibrary时,“InternalError:无法连接到窗口服务器 - 没有足够的权限”

时间:2014-01-14 21:23:23

标签: java awt

我在尝试加载 awt 库时遇到了InternalError。我跟着其他SO问题,比如这个:Jenkins can't connect to window server - not enough permissions,以便通过设置系统属性来解决问题。我不相信这个问题与我链接的问题重复,因为这个问题没有用。

如何避免出现InternalError?

[13:16] /tmp
$ cat Foo.java
public class Foo {
    public static void main(String[] args) {
        Runtime.getRuntime().loadLibrary("awt");
        System.out.println("Done!");
    }
}
[13:16] /tmp
$ javac Foo.java
[13:16] /tmp
$ java -Djava.awt.headless=false Foo
Exception in thread "main" java.lang.InternalError: Can't connect to window server - not enough permissions.
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1833)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1730)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.Runtime.loadLibrary(Runtime.java:811)
    at Foo.main(Foo.java:3)
[13:16] /tmp
$ java -Djava.awt.headless=true Foo
Exception in thread "main" java.lang.InternalError: Can't connect to window server - not enough permissions.
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1833)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1730)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.Runtime.loadLibrary(Runtime.java:811)
    at Foo.main(Foo.java:3)
[13:16] /tmp
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

请注意,我正在尝试这个简单的程序,以解决我们遇到的更大问题。因此,运行此程序是第一步。


编辑:这似乎是一个Java 6问题。当我转到Java 7 JDK时,我可以在不使用任何自定义系统属性的情况下正确运行该程序。

0 个答案:

没有答案