双击jar(netbeans built),没有任何反应。从提示符get null pointer exc写java -jar

时间:2013-02-15 11:03:22

标签: java netbeans ide nullpointerexception

我对java很新,所以如果我没注意到我犯了一些错误,我很抱歉。 正如标题所说,当我构建一个完全在Netbeans 7.2.1上运行的项目,然后双击jar文件时,没有任何反应。 为了更好地发现错误,我建议在网上查看它,然后转到命令提示符并写下:

java -jar C:\Users\conserva\Documents\NetBeansProjects\EasyText\dist\EasyText.jar

这给了我这个:

C:\>java -jar C:\Users\conserva\Documents\NetBeansProjects\EasyText\dist\EasyText.jar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at easytext.MainWindow.<init>(MainWindow.java:25)
        at easytext.MainWindow$4.run(MainWindow.java:220)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

这是第25行的代码部分:

     public MainWindow() {
        initComponents();
        selectfolder.removeAllItems();
        String tempordir = ("src/easytext/textfiles/");
        String[] arr = new java.io.File(tempordir).list();
/*line 25 */         int len = arr.length;
        //System.out.println("arr.lenght è: "+arr.length);
        for (int i = 0; i<len; ++i){            
                selectfolder.addItem(arr[i]);}
          selecttext.removeAllItems();
        tempordir = ("src/easytext/textfiles/"+selectfolder.getSelectedItem().toString());
        arr = new java.io.File(tempordir).list();
        for (int i = 0; i<len; ++i){            
                selecttext.addItem(arr[i]);}
    GetText("src/easytext/textfiles/"+selectfolder.getSelectedItem().toString()+"/"+selecttext.getSelectedItem().toString());    
    }

因此,当我引用len数组的长度时,看起来就像抛出了nullpointerecxeption。

我该如何解决这个问题? 提前谢谢,如果我犯了一些愚蠢的错误或者看不清楚,那就再次感到遗憾。我真的花了一些时间来解决这个问题。

1 个答案:

答案 0 :(得分:2)

来自File.list()的文档:

  

一个字符串数组,用于命名此抽象路径名表示的目录中的文件和目录。如果目录为空,则数组将为空。 如果此抽象路径名不表示目录,或者发生I / O错误,则返回null。

所以听起来好像目录src/easytext/textfiles/可能不存在于你执行代码的地方。