我认为这个问题更适合 SuperUser 而不是 StackOverflow,因为它与实际的 Java 编程无关,尽管程序员可能更有可能遇到这个问题。无论如何,在我提出实际问题之前,让我先从一些统计数据开始:
笔记本电脑:
- Windows 7 x32
- 屏幕分辨率 1024 x 768;Nvidia GeForce Go 6200
- 通过临时无线网络连接到桌面
- 通过桌面访问互联网
桌面:
- Windows 7 x64
- 屏幕分辨率 1920 x 1080
- 通过临时无线网络连接到笔记本电脑
- 通过电缆调制解调器访问互联网
我正在通过以下方式连接到我的笔记本电脑远程桌面从我的台式机上获取大屏幕的优势。我正在我的笔记本电脑上编程(出于便携性原因)。其他一切都通过远程桌面顺利而快速地运行,因为两台计算机都通过临时无线网络直接连接。
唯一的问题是:Java Swing 应用程序无法正确显示 GUI。我获得了一个 Java Swing 应用程序,并在 Eclipse 中对其进行调试。以下是我运行该应用程序时得到的结果:
显然我正在调试的 GUI 应用程序似乎没有任何问题,因为Java 控制面板也存在同样的问题。
我在 Google 上搜索了这个问题,最接近的解决方案是这但很可惜的是,使用起来-Dsun.java2d.nodraw=true
一点效果都没有。
这只会在远程桌面上发生。我已经在本地尝试过,GUI 应用程序可以正常显示。这对我来说不是什么大问题,因为我可以在开发 Java Swing 应用程序时停止使用远程桌面。但是,我想知道是否有人遇到过这种情况并找到了解决方案。
PS:涉及的所有软件(Eclipse、Java JRE等)都是最新版本。
答案1
我可以告诉你,过去当通过远程桌面连接查看某些应用程序(例如 Eclipse)时,我必须将颜色深度设置得比最高设置略低。
关于可能Java VM 中的错误,请参阅这个答案了解更多信息。我非常怀疑这是事实,因为您没有收到任何与无法创建 Java 虚拟机有关的错误消息……但仍然值得检查!
答案2
我遇到了同样的问题,更改颜色深度对我来说不起作用。这:
-Dsun.java2d.d3d=false
似乎对我有用:
答案3
我只需将桌面和 RDP 客户端的颜色都改为 32 位,Java 看起来就很完美了。
答案4
在我注销 Windows 并再次以连接到远程桌面(而不仅仅是断开与远程桌面的连接)的用户身份登录后,同样的问题得到了解决。