设置Linux桌面/GUI环境

3

Android 是基于 Linux kernel 构建的,大多数 Linux 系统使用像 GNOMEKDELXDE 等桌面环境。

我已经编译了带有 busyboxarm cross compiler 工具链和 arm-J2SE 的 Linux 内核和最小根文件系统。目前我只有基本的 命令行界面。现在我想要使用一个桌面环境(启用鼠标并处理鼠标或触摸屏输入/事件)。因为我的 Java 命令行代码运行良好,但当我使用 swingawt 应用程序时,它会显示此异常。

Exception in thread "main" java.awt.HeadlessException 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 javax.swing.JFrame.<init>(JFrame.java:224)
at Gui.main(Gui.java:7)

我只是看了一下javadoc,它显示:

public class HeadlessException
        extends UnsupportedOperationException

当在不支持键盘、显示器或鼠标的环境下调用依赖于这些设备的代码时,会抛出此异常。基本上需要一些窗口管理或类似GUI的环境。我发现了一些构建GUI环境的库,例如XLIB/X11,SDL,可以管理那些鼠标和触摸屏事件。有人能告诉我从哪里开始实现我的目标吗?一些Linux系统使用startx命令来启用GUI环境,然后带来桌面、窗口、鼠标等。我需要类似这样的东西来运行我的Java GUI应用程序。有人能指引我一条路吗?

Linux不需要桌面环境,你可以在命令行界面上运行它。 - mcalex
是的,我们可以。我正在询问GUI发行版。 - Shantanu Banerjee
有趣的问题,我不知道我们能不能做到 :) 期待着收到一个很棒的答案 ;) - toantran
为什么你想要将Android用作桌面操作系统? - CocoNess
不,我想要使用类似于Android的环境来进行GUI。 - Shantanu Banerjee
显示剩余2条评论
2个回答

2

我知道每个Linux系统都应该有像GNOME,KDE,LXDE等桌面环境。

那是不正确的。考虑到服务器或嵌入式系统(不是智能手机),为什么需要UI?操作系统内核不必提供GUI。

下面是Android架构/库层,其中Surface Manager+Window Manager+View System是Android的 desktop environment

enter image description here

有关Linux和图形系统的更多信息,请查看此SO问题

对于您的Java异常,您正在使用无头Java环境并尝试使用Swing / AWT,这在无头Java环境的定义中不受支持。

如何设置支持鼠标,键盘或其他输入的GUI环境?

您正在尝试将Android移植到设备上,如果设备没有已经进行的Android移植工作,则需要深入了解其外围设备以及Android系统的一般知识。这些信息在网络上广泛可得,但这不是一个简单的任务。


0

首先,Linux发行版不需要有图形用户界面(GUI),或者说X Window System。

有人能告诉我Android使用哪个桌面环境吗?

没有。Android不使用X。

我是否需要实现桌面环境来支持键盘和鼠标?

我不知道。我不知道你想要实现什么。如果你想看看你的程序在Android上是否能工作,请查看Android SDK。你可能需要查看Android模拟器,并根据SDK编写代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接