gpt4 book ai didi

java - 如何在 ssh 后在 mac osx 上运行 java GUI

转载 作者:行者123 更新时间:2023-11-30 08:20:10 24 4
gpt4 key购买 nike

我在 mac osx 10.7.5 上使用 java 1.7.0_67。这是我的 hello world gui:

import javax.swing.*; 
import java.awt.*;
import java.awt.event.*;

public class helloWorld extends JFrame {
helloWorld(String title) {
this.setSize(500,500);
setTitle(title);
}

public static void main(String[] args) {
helloWorld window = new helloWorld("Helloworld");
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

当我打开一个 mac 终端并输入 java helloWorld 时,它运行得很好。但是,当我从另一台主机 ssh 进入我的 mac 时,设置我的 DISPLAY env 变量,然后运行,我得到以下异常:

Exception in thread "main" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkedHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:180)
at helloWorld.<init>(helloWorld.java:8)
at helloWorld.main(helloWorld.java:14)

这曾经适用于 Java 1.6,根据我的研究,这似乎是一个有目的的突破。

关于如何在从远程主机通过 ssh 登录后让我的图形用户界面显示的任何想法?我不想使用 X11(更喜欢 native gui 渲染)。

最佳答案

Java 开发人员 chose to use the headless Toolkit在 Mac OS X 上的 ssh session 中运行时。您可以通过将 AWT_TOOLKIT 环境变量设置为 CToolkit 说服 Java 继续并显示 GUI。例如,在 bash 中:

export AWT_TOOLKIT=CToolkit
java helloWorld

设置变量后,您的 GUI 应该会如您所愿地显示。

关于java - 如何在 ssh 后在 mac osx 上运行 java GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com