【问题标题】:Difference in viewing a swing application via a remote client and viewing directly通过远程客户端查看swing应用和直接查看的区别
【发布时间】:2011-07-30 20:09:50
【问题描述】:

所以我有一个可执行的 jar 文件,当它在 windows 或 Linux 中使用命令运行时

 `java -jar filename.jar`

输出is this。 但是当使用VNC客户端通过远程连接查看相同的东西时,输出会减少到this

我尝试使用 -geometry 属性更改 vncserver 实例的分辨率,还尝试为“-cc”和“-depth”属性提供值。但无济于事。有人可以告诉我我必须做什么才能在 vnc 会话中正确显示预期的内容吗?

【问题讨论】:

    标签: java swing look-and-feel vnc-viewer


    【解决方案1】:

    当 GUI 不是在 event dispatch thread 上构建时,可能会出现这种情况。远程连接增加了足够的延迟以暴露潜在问题。

    由于这两个图像具有不同的对话框名称,请验证它们是否代表相同的代码。此外,检查远程服务器的.vnc 日志以查看正在使用的窗口管理器。

    附录:我不确定您的服务器使用的是什么 VNC 服务器,但您可以编辑 $HOME/.vnc/xstartup 以指定窗口管理器。 Gnome 的 Metacity 对我有用。

    【讨论】:

    • 仅使用相同的代码。我还发现对话框(文件打开等)存在同样的问题。我尝试过像“NX”这样的替代品,但由于某种奇怪的原因似乎不起作用。
    • 另外我想知道 VNC 本身是否有任何解决方案。
    • 顺便说一句,我正在使用您提供的链接中提到的 invokeLater 方法。
    • 这使得服务器的窗口管理器似乎无法向 JVM 提供所需的对等组件。
    • 是的。我不知道如何克服它!
    【解决方案2】:

    VNC 客户端还具有影响输出质量的设置,例如颜色深度等。它还取决于 VNC 的功能。您使用的是哪个服务器和客户端?如果你已经在VNCSErver中设置了,请查看VNCViewer的参数。

    【讨论】:

    • 是的。这就是我设置 -cc 和 -depth 属性的意思。我正在使用 vnc 查看器客户端。
    • 您需要更改窗口管理器。看来您使用的是较旧的/原始的,例如 TWM 等。如果是这种情况,您需要切换到 KDM 的 GDM。
    • 我会尝试这样做并告诉您是否解决了问题。但我不知道我是否拥有执行此操作的管理权限 [是否需要 root 权限?],因为它是一个远程系统..
    • 作为替代方案,您可以使用 X-protocol 代替 VNC。如果您的客户端机器也是 linux/unix,您需要 xhost+ 并且在您的应用程序正在运行的机器上,您需要执行 setenv DISPLAY client:0.0 (取决于您的命令 shell 语法)。然后启动应用程序应该在您的客户端中显示它。也有适用于 Windows 的 X-Server。
    猜你喜欢
    • 2012-05-22
    • 2017-04-20
    • 1970-01-01
    • 2016-07-10
    • 2010-10-09
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    相关资源
    最近更新 更多