我的学校项目都是在Linux服务器上完成的,所有这些都是通过命令行完成的,没有GUI。我的一个java项目要求我创建一个java GUI,并能够在GL服务器上构建和运行项目。
我很困惑,因为GL服务器都是命令行,但我的教授说它可以完成。
要连接到学校的GL服务器,我使用Putty。我不知道是否重要。我正在使用swing for Java GUI。我使用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服务器中添加一些额外的东西吗?
答案 0 :(得分:0)
Swing可能是创建GUI的不错选择;我认为你没有理由改变它。
我建议看看X转发。使用X转发,您可以正常SSH到服务器。服务器运行您的所有代码并处理GUI的创建。然后它将窗口显示信息发送回您的机器。
我找到了一个快速的guide to configuring X forwarding in PuTTy。它应该很好地满足您的需求。
要使X转发工作,您的SSH配置必须启用它。您可以肯定地与您的教授讨论这个问题 - 这是对sshd配置文件的一个简单更改。如果您和服务器都在校园内,X转发的速度不应该是一个问题,但请注意,这可能是其他网络设置的缺点。