我正在开发一个我在Eclipse中开发的Java项目。直到今天一切都很好。昨天在完成我的项目工作之前,我最后一次运行它来检查一切是否正常并且运行正常。但今天,当我启动项目并按下" Run"我的应用程序刚刚关闭(没有崩溃,没有消息,没有)。我追溯了这个问题,事实证明问题是" 新JFrame()"当被叫时它只是关闭应用程序。
我在同一个项目中创建了一个测试类,你可以在下面看到它:
import javax.swing.JFrame;
public class asdasd {
public static void main(String[] args) {
System.out.println("A");
try{
JFrame frame = new JFrame();
}catch(Exception e){
e.printStackTrace();
}
System.out.println("B");
}
}
当我运行此代码时,控制台只输出:
A
B永远不会显示!
另一方面,如果我创建一个全新的项目并且我复制粘贴该类,则输出应该是:
A
B
我尝试更改默认JRE,清除bin文件夹,依此类推。
到目前为止,唯一可行的解决方法是从类路径中删除随机JAR。我的项目类路径中总共有16个JAR。但是,如果我随机删除一些theese JAR,那么它开始工作,当然完全打破了我的项目。我删除了哪些JAR并不重要,在删除了一些JAR之后它才开始工作。
到目前为止我尝试过的事情: - 删除项目中的所有类,只留下测试类=相同结果 - 创建一个新项目,复制粘贴我的所有类和依赖项=相同结果
一个奇怪的事情是,如果我将我的代码编译成JAR文件并从CMD运行它,Swing正常启动,我的应用程序按预期工作。 AB正确显示。所以它必须与Eclipse有关。但是我今天还没有更新任何东西来制动它。 (我昨天晚上才更新了我的Nvidia GPU驱动程序,但这与Eclipse完全无关。)
任何人都知道可能导致此问题的原因是什么?感谢。
答案 0 :(得分:2)
所以我终于为我找到了一个有效的解决方案。我创建了一个全新的Eclipse Workspace并复制粘贴了我的所有类。这似乎解决了未知问题。我仍然不知道造成这个问题的原因,但我希望它不会再发生。
这不是一个真正的解决方案,而是更多的解决方法。我想最好的方法是使用版本控制作为@efekctive建议。
感谢大家提供了有关如何解决此问题的建议。
答案 1 :(得分:2)
我的情况绝对相同。
我的代码在JFrame创建期间在swing类中崩溃,没有抛出异常。测试代码如下所示
import javax.swing.JFrame;
public class MainPanel {
/** A Start point of the BC UI Clien Application. */
public static void main(String[] args) {
try {
JFrame objLoginPane = new JFrame();
objLoginPane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
objLoginPane.pack();
objLoginPane.show();
} catch (Throwable ex) {
ex.printStackTrace();
}
}
}
在我的工作区中有2个带有swing GUI的项目。更简单的一个工作,因为它应该更复杂的一个崩溃JFrame创建。
在新的工作空间中,情况是一样的。上面的解决方案没有帮助。
在进一步调查期间,我发现项目在构建路径中包含一定数量的库(在我的情况下为19-22)时开始崩溃。它不依赖于构建路径或类型中的jar大小。没有明确的逻辑,它停止工作的罐子。
这么长的故事我已经在Windows期刊中找到了崩溃的原因,它是NVIDIA 3D Vision驱动程序! 3DVision驱动程序卸载后所有工作正常(不需要卸载显示驱动程序只有3D Vision导致问题)。我安装了最新的(v378.49)GeForce驱动程序。我的粗略翻译了与此错误相关的Windows日记条目:
Failed module name: nvSCPAPI64.dll, version: 7.17.13.7849, time stamp: 0x588218a5
Error code: 0xc0000409
Error offset: 0x0000000000034b2f
Failed process identifier: 0x143c
Failed process start time: 0x01d280cd39a31077
Failed process path: C:\Program Files\Java\jdk1.8.0_121\bin\javaw.exe
Failed module path: C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI64.dll
Report identifier: 6dd65788-acb1-48ce-a786-4e38af325fec