2012-05-18 29 views
2

試圖從一個SSH會話導致運行ADT:運行ADT(Adobe的AIR開發工具)從SSH

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進程,所以此解決方案不起作用。

我能夠用含有shell腳本替換的/ usr/bin中/ JAVA圍繞破解我的方式:

java.old -Djava.awt.headless=true "[email protected]" 

然而,這會影響所有Java進程在這個機器上運行,從而導致許多其他問題。必須有更好的方法...

回答

0

我只注意到有一個非常簡單的解決方法。我在OS X上測試了這一點,雖然不完全是一個解決方案,但可能足夠好。只要確保用戶試圖通過ssh進行adt打開控制檯會話並且adt將正常運行。

+0

Wha這是否意味着什麼?什麼是「打開控制檯會話」? – jameshfisher

+0

我的意思是機器本身正在進行的會話。如您所見,您從OSX歡迎屏幕登錄帳戶,並讓它坐在那裏。然後你可以通過ssh連接到同一臺機器,它會工作。 – Blanka

0

您唯一能找到的工作就是讓您的Jenkins用戶成爲OSX上的實際用戶。
我一直不得不依靠設置Jenkins作爲OSX構建箱上的普通用戶。即使使用Xvfb Jenkins插件也不能解決問題。這非常令人沮喪。

有來自Adobe的而無益的線程在這裏:

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

還有另外一個線程這裏,瞭解shell腳本包裝工作的一部分:

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