【问题标题】:Java with GUIs won't run带有 GUI 的 Java 无法运行
【发布时间】:2019-03-20 13:53:36
【问题描述】:

您好,我在我的 Mac 上需要 Java 方面的帮助。我已经完全卸载了所有版本的 Java 并安装了 Oracle JDK 1.8.0_202。我可以做 javac 和 java - 并编译和运行在控制台中运行的简单程序。但是 - 当我尝试使用窗口进行任何操作时 - 它会挂起。

这包括所有 gui 应用程序、java web 启动,甚至 Java 控制面板都不会启动 - 它只是停止响应并且不显示任何内容。

这个简单的应用程序也表现相同:

import javax.swing.*;        

public class HelloWorldSwing {
/**
 * Create the GUI and show it.  For thread safety,
 * this method should be invoked from the
 * event-dispatching thread.
 */
private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("HelloWorldSwing");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Add the ubiquitous "Hello World" label.
    JLabel label = new JLabel("Hello World");
    frame.getContentPane().add(label);

    //Display the window.
    frame.pack();
    frame.setVisible(true);
}

public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
}

}

我已经尝试过重新安装、重新启动等任何操作,但我仍然无法让这个简单的程序运行。我在运行它的终端中没有收到错误消息 - 它只是冻结了。

请帮我解决这个问题并获得一个有效的 java 设置。

我正在使用装有 Mojave 10.14.3 的 Macbook pro

【问题讨论】:

  • 我已经很久没有用 Swing 做点什么了,所以我可能错了,但 invokeLater 不是打算用于 GUI 线程中的长时间运行任务吗?我认为它不应该用于调用 GUI 线程本身。尝试从您的主目录中简单地调用createAndShowGUI()
  • 我刚刚运行了您的代码,它运行良好 - 在屏幕左上角显示了一个窗口(您很容易错过它)。你确定你只是没有错过它或它隐藏在其他窗口后面吗?添加 frame.setSize(1000, 1000);只是为了测试以确保。
  • @AndréStannek 是倒退的。 invokeLater 在 EDT 上运行任务,您不需要长时间运行的任务。
  • 我确定 - 没有运行窗口,如果我将鼠标悬停在标题栏左侧上方的程序名称上,它只会显示一个永不停止的微调器,并在活动监视器中显示因为没有回应。这对于所有其他 GUI Java 应用程序都是一样的

标签: java swing user-interface


【解决方案1】:

编辑

其实真正的罪魁祸首是Display Link。如果您曾经遇到过 Java 和 GUI 的问题 - 这可能是因为您使用的是 Display Link 并且驱动程序与 Java 冲突。仅当您的笔记本电脑屏幕关闭时。

更多信息请看这里 https://displaylink.org/forum/showthread.php?t=66556

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2021-08-20
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多