對不起,有一個簡短的問題,以及長時間的解釋。客戶端服務器GUI資源
我的本地Clojure程序運行正常,並使用GUI控件,但是當從服務器運行時,它失敗。你能幫我嗎?
我一直在無頭Ubuntu(14.04)服務器上測試Clojure示例代碼。我在LightTable中運行這些程序,然後再用連接到Ubuntu repl的LT運行它們。
對我不起作用的程序是在本機OS X中打開文件選擇器對話框,以便我可以將文檔上載到服務器。看來,我的Macbook找到的某些GUI資源並未被服務器程序找到。我讓它工作了一個小時,並且我使用的網站查找功能,沒有問題。
我覺得我陷入了一個地獄般的狀態,試圖讓這個樣本工作,我真的需要它的工作。
我有VirtualBox擴展包,應該提供VRDE。
我已經不同地嘗試了不同的服務器啓動選項和ssh選項。如果我設置了環境變量,我的客戶端程序就無法使用這些細節。
對我來說最糟糕的是,它確實有效 - 曾經有一次。我的努力使工作變革永久化了,再次打破了它。儘管恢復了快照並恢復了我的Macbook,但我無法再繼續使用此設置。
簡而言之,運行在客戶端上的GUI程序在從服務器運行時遇到問題。請幫忙。我被困了好幾天。
我不知道它是否有幫助,但我已經安裝了Xauth和Webmin。 Webmin被描述爲'一個基於網絡的Linux GUI管理工具'。
我一直建議使用Java WebStart,但是,我讀到這是包含和自動使用。更進一步,我無法看到解決方案。
我提供完整的錯誤消息,從LightTable複製的情況下,可以幫助你幫助我:
**java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
GraphicsEnvironment.java:207 java.awt.GraphicsEnvironment.checkHeadless
Window.java:535 java.awt.Window.<init>
Frame.java:420 java.awt.Frame.<init>
Frame.java:385 java.awt.Frame.<init>
JFrame.java:174 javax.swing.JFrame.<init>
(Unknown Source) com.ociweb.swing.proxy$javax.swing.JFrame$ActionListener$c1f703.<init>
(Unknown Source) com.ociweb.swing$eval7839.invoke
Compiler.java:6703 clojure.lang.Compiler.eval
Compiler.java:6666 clojure.lang.Compiler.eval
core.clj:2927 clojure.core/eval
eval.clj:77 lighttable.nrepl.eval/->result
AFn.java:156 clojure.lang.AFn.applyToHelper
AFn.java:144 clojure.lang.AFn.applyTo
core.clj:626 clojure.core/apply
core.clj:2468 clojure.core/partial[fn]
RestFn.java:408 clojure.lang.RestFn.invoke
core.clj:2559 clojure.core/map[fn]
LazySeq.java:40 clojure.lang.LazySeq.sval
LazySeq.java:49 clojure.lang.LazySeq.seq
RT.java:484 clojure.lang.RT.seq
core.clj:133 clojure.core/seq
core.clj:2595 clojure.core/filter[fn]
LazySeq.java:40 clojure.lang.LazySeq.sval
LazySeq.java:56 clojure.lang.LazySeq.seq
Cons.java:39 clojure.lang.Cons.next
LazySeq.java:81 clojure.lang.LazySeq.next
RT.java:598 clojure.lang.RT.next
core.clj:64 clojure.core/next
core.clj:2856 clojure.core/dorun
core.clj:2871 clojure.core/doall
eval.clj:126 lighttable.nrepl.eval/eval-clj
RestFn.java:442 clojure.lang.RestFn.invoke
sonar.clj:215 lighttable.nrepl.sonar/eval5355[fn]
AFn.java:152 clojure.lang.AFn.applyToHelper
AFn.java:144 clojure.lang.AFn.applyTo
core.clj:624 clojure.core/apply
core.clj:1862 clojure.core/with-bindings*
RestFn.java:425 clojure.lang.RestFn.invoke
sonar.clj:203 lighttable.nrepl.sonar/eval5355[fn]
MultiFn.java:227 clojure.lang.MultiFn.invoke
core.clj:98 lighttable.nrepl.core/queued[fn]
core.clj:2402 clojure.core/comp[fn]
interruptible_eval.clj:138 clojure.tools.nrepl.middleware.interruptible-eval/run-next[fn]
AFn.java:22 clojure.lang.AFn.run
ThreadPoolExecutor.java:1145 java.util.concurrent.ThreadPoolExecutor.runWorker
ThreadPoolExecutor.java:615 java.util.concurrent.ThreadPoolExecutor$Worker.run
Thread.java:744 java.lang.Thread.run**
您能否詳細介紹一下您是如何開始在服務器上提供repl的流程的,我可以假設您在SSH中運行並運行了leiningen嗎? –
你是對的!我啓動一個無頭的Ubuntu服務器,然後ssh Core - 服務器主機名。我運行lein repl,指定主機和端口。然後我在LightTable中使用這些細節,將我的示例代碼粘貼到... schoren!如果我設置了DISPLAY變量,它只會拋出一個類似但不同的錯誤。 – Dvious
「打開文件選擇器對話框」。在無服務器的這一點上,你想要發生什麼? –