0

私はJavaにまったく慣れていないので、間違いに気づかなかったらごめんなさい。タイトルにあるように、Netbeans 7.2.1で完全に実行されているプロジェクトをビルドしてから、jarファイルをダブルクリックしても、何も起こりません。私が読んだWebをチェックすると、エラーをより正確に見つけるために、コマンドプロンプトに移動して次のように書くことが提案されました。

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がスローされているように見えます。

どうすればこれを解決できますか?よろしくお願いします。ばかげた間違いをしたり、何かはっきりしたものが見当たらない場合は、もう一度申し訳ありません。私は本当に解決策にたどり着くことなくこれにいくらかの時間を費やしています。

4

1 に答える 1

2

のドキュメントからFile.list()

この抽象パス名で示されるディレクトリ内のファイルとディレクトリに名前を付ける文字列の配列。ディレクトリが空の場合、配列は空になります。この抽象パス名がディレクトリを示していない場合、またはI / Oエラーが発生した場合は、nullを返します。

したがって、コードを実行している場所からディレクトリsrc/easytext/textfiles/がおそらく存在しないように思われます。

于 2013-02-15T11:05:32.257 に答える