0
        InputStream input = Faculty.class.getClassLoader().getResourceAsStream("Resources\\Names.txt");
        DataInputStream in = new DataInputStream(input);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        while ((strLine = br.readLine()) != null && !strLine.equals("")) {
            keywords.add(strLine);
        }

上記のコードは NetBeans で動作します。しかし、コードを実行可能なJarにパックしてコマンドラインから実行すると、初期化されていないため、NullPointerExceptionが発生しましたinput。そのため、Jar がパッケージ化されたリソース ファイルを読み取ることができなかったと思われます。フォルダーResourcesは、プロジェクトのソース フォルダーの直下にあります。誰が何を試すべきかヒントを与えることができますか?

4

1 に答える 1

0

次のように書く必要があります。

getResourceAsStream("/Resources/Names.txt");

プレフィックス「/」を追加しない場合、パスはルート パスではなく、クラス パスに基づいていることを意味します。

于 2013-04-02T02:06:40.517 に答える