用Eclipse运行编写的简单日记本程序时出现A java Exception has occurred

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at DiaryFrame.<init>(DiaryFrame.java:179)
at DiaryFrame.<clinit>(DiaryFrame.java:48)

“NullPointerException”:空指针异常

“DiaryFrame.java:179”、“DiaryFrame.java:48”:
看一下 DiaryFrame.java 文件的第48、179行代码,肯定有方法的调用,就是这样的格式:
“变量名.方法名(参数)"。 此时”变量名“为null(空),所以造成了空指针异常。追问

那个变量名不是空的呀

追答

方便把代码贴出来看看吗?
空指针异常就是由于”变量的值为null(空)却又调用方法“引起的。

追问

你给我邮箱吧 代码比较长

追答        try
        {
            //debug发现nodes为null。加一句代码new一下就好
            nodes = new ArrayList<DefaultMutableTreeNode>();
            
            nodes.add(n);
        }

结果如下:


空指针异常OK了,但是我试了一下,貌似功能还没有完全实现。你再排查一下吧。

追问

再问个问题 为什么那些结点不显示出来?

追答

刚刚发现为什么nodes为null了。

public class DiaryFrame extends JFrame
{

    static ArrayList<DefaultMutableTreeNode> nodes = new ArrayList<DefaultMutableTreeNode>();
    static DiaryFrame df = new DiaryFrame();
    private MenuListener menuListener = new MenuListener();

这里nodes必须在df之前定义,因为static DiaryFrame df = new DiaryFrame();这句执行的时候需要用到nodes 这个值。原来的代码中顺序颠倒了,所以nodes = null 了。


只要调换一下原代码顺序即可,不必再像第一次回答的那样再new一次了。

追问

噢噢 行了 哈哈 太感谢了

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-18
程序无法运行,有写main函数让它运行吗?追问

有啊 用邮箱发源代码给你看一下吧

第2个回答  2014-04-18
有空指针异常,应该很好检查的。追问

java小白表示不懂~~能帮我看下源代码吗?

第3个回答  2014-04-18
只知道空指针异常 没有源码解决不了追问

你给我邮箱,我发源码给你吧 ^_^

用Eclipse运行编写的简单日记本程序时出现A java Exception has occur...
“NullPointerException”:空指针异常 “DiaryFrame.java:179”、“DiaryFrame.java:48”:看一下 DiaryFrame.java 文件的第48、179行代码,肯定有方法的调用,就是这样的格式:“变量名.方法名(参数)"。 此时”变量名“为null(空),所以造成了空指针异常。

java程序弹出a java exception has occurred
当你遇到"Java程序弹出a java exception has occurred"的错误时,这通常意味着Java虚拟机遇到了问题。首先,确保你的Java环境已正确配置,这是学习Java的基础。检查是否存在版本不兼容或安装路径包含中文的情况,这些都可能导致问题。如果在使用Eclipse时遇到,可能需要调整编译的JDK版本,选择与系统兼容的版本...

eclipse 出错a java exception has occurred
eclipse基本不自带的,myeclipse才会自带,自己检查下 classpath 配置是不是错啦

Eclipse编写的程序运行就显示A java Exception has occurred,
有异常产生,检查程序是否有错误,或是倒入需要的类包

a java exception has occurred应该怎么解决
a java exception has occurred的错误可能的原因如下:安装的jdk与系统不兼容,需要下载对应位数的jdk。安装的是jdk1.7,但安装路径中包含中文。需要删除中文,改为字母。上述错误多发生在打开eclipse或者cmd运行java期间产生,如果是eclipse中,可以更换编译的jdk。

Eclipse 运行弹出A Java Exception has occurred.并报错Exception in t...
如果是eclipse找不到jdk的配置,可以在eclipse.ini里直接配置 在-vmargs 参数的前面,一定是前面,添加如下代码:-vm c:\/...\/..\/jdk1.6.0_02\/bin\/javaw.exe

A Java Exception has occurred
如果没有配好,学习java首先要学会配置好环境。其次安装的jdk与系统不兼容,需要下载对应位数的jdk,安装的是jdk1.7,但安装路径中包含中文。需要删除中文,改为字母。上述错误多发生在打开eclipse或者cmd运行java期间产生,如果是eclipse中,可以更换编译的jdk。

Eclipse出现了A Java Exception has occurred错误
那就是jdk1.7对中文的支持真的太差,你肯定是将jar文件复制到中文命名的文件夹里了,桌面也算是哦!!!所以就出错了!!!哎……你看看是不是这样

eclipse A Java Exception has occurred 运行时候突然出行这么个问题...
如果是eclipse找不到jdk的配置,可以在eclipse.ini里直接配置 在-vmargs 参数的前面,一定是前面,添加如下代码:-vm c:\/...\/..\/jdk1.6.0_02\/bin\/javaw.exe

用eclipse运行java程序出现错误提示error:A JNI error has occureed
编译版本与运行版本不一致导致的,在窗口->首选项里面设置:就可以了。

相似回答