2

我学校的项目都是在 Linux 服务器上完成的,都是用命令行完成的,没有 GUI。我的一个 java 项目要求我创建一个 java GUI 并能够在 GL 服务器上构建和运行该项目。

我很困惑,因为 GL 服务器都是命令行,但我的教授说可以做到。

为了连接到学校的 GL 服务器,我使用了 Putty。我不知道这是否重要。我正在为 Java GUI 使用 swing。我使用 ant 编译和运行,我的教授在给它评分时也会这样做。

我成功地构建了程序,但是当我运行它时,出现了:

Buildfile: build.xml

run:
     [java] Exception in thread "main" java.awt.HeadlessException:
     [java] No X11 DISPLAY variable was set, but this program performed an operation which requires it.
     [java]     at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
     [java]     at java.awt.Window.<init>(Window.java:406)
     [java]     at java.awt.Frame.<init>(Frame.java:402)
     [java]     at javax.swing.JFrame.<init>(JFrame.java:207)
     [java]     at gui.PushCounter.main(PushCounter.java:18)
     [java] Java Result: 1

BUILD SUCCESSFUL
Total time: 0 seconds

当您使用命令行时,是否有不同的类或方法在 Java 中创建 GUI?除了 Putty 之外,我还可以登录另一个更适合使用 Java GUI 的终端吗?我必须在我的代码或 Linux 服务器中添加一些额外的东西吗?

4

1 回答 1

0

Swing 可能是创建 GUI 的不错选择;我看不出你为什么要改变它。

我建议看一下X转发。使用 X 转发,您可以像往常一样通过 SSH 连接到服务器。服务器运行您的所有代码并处理您的 GUI 的创建。然后它将窗口显示信息发送回您的机器。

我找到了在 PuTTy 中配置 X 转发的快速指南。它应该很好地满足您的需求。

注意事项

要使 X 转发工作,您的 SSH 配置必须启用它。你当然可以和你的教授讨论这个——这是对 sshd 配置文件的简单更改。如果您和服务器都在校园内,则 X 转发的速度不应成为问题,但请注意,这可能是其他网络设置的一个缺点。

于 2012-04-28T19:32:52.117 回答