gpt4 book ai didi

java - 如何让 Cloud9 和 noVNC 工作以使 JOptionPane 可见?

转载 作者:行者123 更新时间:2023-12-02 11:08:41 24 4
gpt4 key购买 nike

我之前有过这个问题,最后与 C9 支持人员进行了交谈,这帮助我取得了一些进展。重申一下,问题是使用 JOptionPane 运行一个简单的 Java 程序:

import javax.swing.JOptionPane;

public class Test
{
public static void main ( String args[] )
{
JOptionPane.showMessageDialog (null, "This is a sample program" );
}
}

导致这些错误:

Exception in thread "main" java.awt.HeadlessException:                                                                                                      
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1756)
at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1831)
at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1697)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:667)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:638)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:609)
at Test.main(Test.java:8)

显然没有GPU或显示器,因此需要对其进行模拟。我得到了以下步骤:

首先设置参数:

sudo apt-get install xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable x11-apps

其次,要使显示可用并给它编号 99:

Xvfb :99 -ac -screen 0 1280x1024x16 & 

三、创建x11vnc密码:

x11vnc -storepasswd s3cr3t3 ~/.vnc/passwd

第四,启动VNC服务器。

sudo x11vnc -rfbauth ~/.vnc/passwd -xkb -noxrecord -noxfixes -noxdamage -ncache 10 -rfbport 5900 -display :99 &

第五,这会导致它监听端口 5900,但只有 8080 可用,因此不需要 VNC:

git clone git://github.com/kanaka/noVNC

第六,运行noVNC:

./noVNC/utils/launch.sh --vnc localhost:5900

在尝试使用浏览器连接到 noVNC 之前,我不会遇到问题。似乎有三个是这样做的:

这是 C9 支持人员给我的:

https://<workspace>-<username>.c9.io/vnc.html

这是 noVNC 生成的用于将浏览器指向的内容:

http://<username>-<workspace>-1260462:6080/vnc.html?host=<username>-<workspace>-1260462&port=6080

还有一个可以指定主机、端口、密码等的网站

http://kanaka.github.io/noVNC/noVNC/vnc.html

无论如何,我永远无法连接,我不确定我做错了什么。我已验证启动 noVNC 之前的所有步骤均已正确初始化并且当前正在运行。我已经阅读了几乎所有有关它的文档。在装有最新 Chrome 的 Windows 7 上运行此程序。

问候

最佳答案

我还没有完全做到这一点,但我可能比你更接近一步。你的步骤对我真的很有帮助。我可以启动 X11 应用程序,但无法与它们交互。我只能看到初始屏幕。

您需要修改启动 noVNC 服务器的行:

./noVNC/utils/launch.sh --vnc localhost:5900 --listen 8080 &

然后,您可以从普通浏览器通过以下网址访问 noVNC Web 服务:

https://<workspace>-<user>.c9users.io/vnc.html

当 noVNC 询问连接详细信息时,您可以使用预先填写的主机名 <workspace><-<user>.c9users.io 进行连接端口443和上一步中设置的密码 s3cr3t3在你的例子中。

现在,您可以从 Cloud8 IDE 工作区打开绘制到 VNC 服务器并通过 noVNC 可见的应用程序。例如:

env DISPLAY=:99 xterm

引用:https://docs.c9.io/v1.0/docs/multiple-ports

关于java - 如何让 Cloud9 和 noVNC 工作以使 JOptionPane 可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28309973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com