【发布时间】:2014-02-05 09:29:21
【问题描述】:
我正在 Netbeans 的 Mac OS X (10.9.1) 上使用 jdk1.7.0_51 开发 JavaFX 应用程序。我可以毫无问题地运行它,并且在干净构建之后,我还可以从 dist/ 文件夹启动 jar。
现在我想将它部署在 64 位 Ubuntu 13.04 服务器上。我在这样做时遇到了很多问题,但最终将服务器设置为拥有正确的 JRE、字体和库。运行 jar 导致错误比我的代码更深(转到 UnsatisfiedLinks 到提到 MACOS 的本机库),所以我认为最好将我的应用程序打包在 Ubuntu 本身上。我最终安装了 NetBeans 来创建一个新的(本机)JavaFX 项目,并使用 sftp 从我的机器上传了 src/ 和 lib/ 文件夹。在 NetBeans 中通过重建的项目运行代码可以正常工作,但在运行期间我在控制台中收到警告:
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Prism-ES2 Error : GL_VERSION (major.minor) = 1.4
无论如何,应用程序确实会运行。干净构建后,我可以类似地从 dist/ 文件夹运行 jar。终端中出现相同的警告,但随后应用程序启动。
但是,如果我 ssh 到没有 -X 标志的服务器并尝试运行应用程序,我会得到以下信息:
Failed in XOpenDisplay
(java:29341): Gtk-WARNING **: cannot open display:
但是,我的应用程序没有 UI。它只是将 JavaFX 用于 WebEngine(这是必需的,不能更改)。我想知道是否有人知道(如果是,如何)可以在没有显示的情况下启动我的 JavaFX jar(仅作为服务器上的守护进程运行)。
亲切的问候, 最重要的
编辑:
我已经尝试过这里描述的一些东西:Java Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable
You need to specify the -Djava.awt.headless=true parameter at startup time.
(假设我使用命令 java -Djava.awt.headless=true -jar MyApp.jar 正确执行此操作),这没有产生任何结果(发生相同的错误)。
export DISPLAY=:0
仍然没有结果,尽管错误显然略有变化,现在阅读:
(java:30765): Gtk-WARNING **: cannot open display: :0
最后我也尝试了以下方法:
unset DISPLAY
这导致了最初的错误(显然没有设置 DISPLAY)。
【问题讨论】:
标签: java ubuntu ssh javafx x11