java - Swing 在不同的平台上工作不同

标签 java linux swing awt xuggler

我使用 Java SwingXuggler 5.4 制作了一个屏幕录像机。我在 Windows 8 64 位中开发了它。它在 Windows 上运行良好。但是在 Linux 环境的客户端,没有任何工作。我已经彻底搜索但没有得到任何解决方案。我检查了这个thread ,但它对我不起作用。

然后我尝试在 Linux 中创建简单的透明窗口,但它也不起作用。我无法点击可调整大小的面板。我对两者都使用了相同的 JRE 版本 (1.7)。就 Swing 而言,我是否没有理解 Java 的跨平台支持? 请给我一些建议...

最佳答案

我一直认为日志记录是您可以使用的最佳调试工具!很多时候,Java 调试器会将您带入您不必每次都去的 API。变量的记录值和通用的“我已经达到这一点”的陈述让生活变得更加轻松。

所以,我想您已经在代码中完成了充足的日志记录。这可以为您提供有关客户系统上发生的事情的线索。 是否设置了正确的环境变量?他们是否指向您需要的正确 Java 版本。 如果您的代码有一些特定的屏幕捕获要求(插件/模块/API),它们在 Linux m/c 上可用吗? 正如@MadProgrammer 所说,最终,Java 必须与 native 图形 API 对话以呈现您的屏幕。 我会尝试以这种方式调试它 -

  1. 检查我的主屏幕是否加载(通过暂时禁用屏幕捕获功能)。
  2. 如果没有,请深入挖掘。
  3. 检查捕获屏幕(音频和视频)所需的所有组件是否可用。
  4. 检查代码是否以适当的权限运行,以控制您可能需要的硬件设备。

关于java - Swing 在不同的平台上工作不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25009276/

相关文章:

java - SQL Server JDBC 异常

java - 对DBMS进行写操作时需要同步功能

c - 套接字数据长度问题

java - Prepared Statement 主键存储种子 1 和增量

java - 我应该使用什么布局来获得我想要的 GUI?

java - Singleton 类中的非静态成员

java - 绕过 'Cannot refer to a non-final variable inside an inner class defined'

linux - 提取音频,再次操作和合并

python - 在linux中,如何使用python检查外部程序是否正在运行?

Java 图形用户界面 : Instantiating a complex pop-up window's components each time it's opened vs storing them