我在尝试加载 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时,我可以在不使用任何自定义系统属性的情况下正确运行该程序。