Java:Linux中的graphics

X-Windows是否必须安装在Linux机器上才能使Java显示全屏graphics

Solutions Collecting From Web of "Java:Linux中的graphics"

其他答复者似乎认为“Java中的全屏图形”必然意味着“AWT的工作实现”。 这当然不一定是正确的,因为完全可能的(有人甚至会说是可取的)在不使用AWT的情况下使用Java。

开罗是一个2D图形渲染库,可以从Java使用,也可以在没有X11的情况下使用。 它看起来乍一看就好像应该可以为这种情况配置它。 您需要将其配置为使用OpenGL渲染,并提供合适的非X11 OpenGL实现(例如,带有'fbdev'设备驱动程序的MesaGL)。

SDLJava是流行的C SDL游戏开发库的Java端口。 这也应该能够做你所要求的,虽然似乎从2005年以来似乎没有更新,所以如果你有任何问题,支持可能不会到来。

作为替代方法,您可以使用一些相当简单的C代码来打开和配置framebuffer,然后使用JNI将内存映射的framebuffer作为直接模式的ByteBuffer返回,这样您就可以直接进行绘制了。

那么“全屏显示”有点含糊。

无论如何,显然有一个努力正在从Java访问framebuffer: Framebuffer Toolkit 。

这个项目的目标是产生一个代码体,它是一个轻量级的基于帧缓冲区的AWT和Swing对等实现。 这个代码的目标是消除对X或其他图形层的依赖,使得图形可以被重定向到帧缓冲区(例如原始缓冲区,VNC等)。 这个示例实现将更喜欢纯Java解决方案,并根据需要使用公共扩展点来输入本地资源。

请参阅项目建议书:fbtoolkit 。

要真正在屏幕上显示图形,是的。 Bud只是运行它的一个无头版本的JRE。 你不会看到任何图形输出,但它会运行。 或者,您可以远程登录并使用X转发在服务器上运行Java代码,但让客户端处理显示图形。

在一个像Raspberry Pi这样的嵌入式设备上,如果你不想用标准的Java AWT + Swing去完整的X11,那么这个https://github.com/ttww/JavaFrameBuffer项目直接写入帧缓冲区似乎很有趣。

另一种方法是使用例如GTK或Qt Jambi上的SWT来写入帧缓冲区(GTK和QT都可以直接使用没有X11的FB)。