SSHセッションからadtを実行しようとすると、次のようになります。
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:1827)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
at java.awt.Toolkit.<clinit>(Toolkit.java:1627)
at java.awt.Dimension.<clinit>(Dimension.java:70)
...
-Djava.awt.headless=true
通常、これはjavaに渡すことで修正できます。ただし、adtはこの引数なしで他のJavaプロセスを生成するため、このソリューションは機能しません。
/ usr / bin / javaを次のようなシェルスクリプトに置き換えることで、自分のやり方をハックすることができました。
java.old -Djava.awt.headless=true "$@"
ただし、これはこのボックスで実行されているすべてのJavaプロセスに影響し、他の多くの問題を引き起こします。より良い方法が必要です...