2

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プロセスに影響し、他の多くの問題を引き起こします。より良い方法が必要です...

4

2 に答える 2

0

非常に簡単な回避策があることに気づきました。私はこれをOSXでテストしましたが、正確には解決策ではありませんが、十分かもしれません。sshを介してadtを実行しようとしているユーザーが、開いているコンソールセッションを持っていることを確認してください。そうすれば、adtは正常に実行されます。

于 2012-05-19T00:09:08.887 に答える
0

あなたが見つけがちな唯一の回避策は、JenkinsユーザーをOSXの実際のユーザーにすることです。
私は、OSXビルドボックスで通常のユーザーとしてJenkinsを設定することに依存していました。Xvfb Jenkinsプラグインを利用しても、問題は解決しません。非常にイライラします。

ここにAdobeからのかなり役に立たないスレッドがあります:

http://forums.adobe.com/message/4162406

シェルスクリプトでジョブの一部をラップするための別のスレッドがここにあります。

https://groups.google.com/forum/?fromgroups=#!topic/fluint-discussions/tL6AEWKgDfw

于 2012-12-28T06:31:21.207 に答える