从 Eclipse 运行时未出现 Java JFrame 窗口
Posted
技术标签:
【中文标题】从 Eclipse 运行时未出现 Java JFrame 窗口【英文标题】:Java JFrame Window not appearing when run from Eclipse 【发布时间】:2014-11-15 01:23:25 【问题描述】:一个非常简单的问题。我尝试运行一个非常简单的演示来从 Eclipse 创建和显示一个窗口框架,但没有任何反应。没有错误,没有窗口,代码运行完成。
我添加了断点并确保代码按预期运行。代码直接来自 Java 教程 (FrameDemo),我只是重命名了包以适合我放置它的位置(此包中的其他代码运行良好):
package ui;
import java.awt.*;
import javax.swing.*;
/* FrameDemo.java requires no other files. */
public class FrameDemo
/**
* 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("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
//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();
);
我的设置(Kepler SR2):
eclipse.buildId=4.3.2.M20140221-1700 java.version=1.8.0_05 java.vendor=甲骨文公司 BootLoader 常量:OS=macosx、ARCH=x86_64、WS=cocoa、NL=en_US 框架参数:-product org.eclipse.epp.package.java.product -keyring /Users/steve/.eclipse_keyring -showlocation 命令行参数:-os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/steve/.eclipse_keyring -showlocation我还检查了配置 -> 错误日志;仍然没有,没有错误。我尝试了其他类似的演示,结果相同。
任何帮助将不胜感激,因为我已经坚持了一天多。
【问题讨论】:
它应该显示,因为我看不出代码有什么问题。您是否尝试过从头开始重新加载 Eclipse? 您是否尝试过使用不同的 IDE 或从终端运行它? @Vince - 将其导出到 jar 中,然后从终端运行它,弹出窗口。 不,不重启,重新安装。从头开始。 @user4061565:不,我不建议你这样做,因为这个网站主要是为了回答这些问题。相反,请尝试为您自己的问题写一个清晰的答案,然后发布,然后在时间限制允许后接受。这是我们在这里想要和需要的东西(我认为),因为您这样做可能会帮助未来的用户,这就是它的全部意义。 【参考方案1】:原来我遇到了图书馆问题。我已经从 jfreechart 导入了 .lib 目录中的所有 jar。实际上只需要两个,一些不必要的被标记为 swt 和实验性的。一旦我删除了所有不需要的,清理并重建,一切正常。
奇怪的是,将 jfreechart 库(包括冲突的 jar)的顺序更改到底部并没有帮助,必须删除额外的 jar。
不是 jfreechart 问题,显然是我自己的库导入问题。如果您遇到这种情况,我建议您尝试删除一些可能有冲突的库,然后清理、构建并再次运行。
感谢 Hovercraft Full Of Eels 以及所有响应帮助我的人。
【讨论】:
有趣!我遇到了同样的问题。从来没有想过如何进口比需要更多的罐子可能会导致这种情况。无论如何,不错的收获! 非常正确。我有类似的问题。我的应用程序没有启动,当我运行时什么也没发生。从参考库中删除了 jfreechart-1.0.19-swt.jar,一切顺利!!! OMG - 我刚刚遇到了同样的问题,并认为我要疯了。删除了 SWT 和景气上的“外部 jar dep” - 出现了摆动窗口...【参考方案2】:macOS + Eclipse + swt.jar 给出了这个问题。
事实证明,在 macOS 中,如果类路径中有 swt.jar,Eclipse 在启动 GUI 应用程序时会添加一个特殊参数 -XstartOnFirstThread
。从外部库(用于构建类路径)中删除 swt.jar 后,问题解决了。
【讨论】:
以上是关于从 Eclipse 运行时未出现 Java JFrame 窗口的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse/Maven:运行 JUnit 测试时未编译它们
Eclipse / Maven:JUnit测试在运行时未编译