对不起,有一个简短的问题,以及长时间的解释。客户端服务器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
“打开文件选择器对话框”。在无服务器的这一点上,你想要发生什么? –