すでにクラスパスにある場合は、ディスクファイルシステムからではなく、クラスパスから取得してください。で相対パスをいじらないでくださいjava.io.File。それらは、Javaコード内から完全に制御できない現在の作業ディレクトリに依存しています。
それListStopWords.txtがFileLoaderクラスと同じパッケージにあると仮定して、次のようにします:
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
または、あなたが最終的に求めているすべてが実際InputStreamにそれである場合:
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
は必ずしもディスクファイルシステムパスを表すとは限らないnew File()ため、これはを作成するよりも確かに推奨されurlますが、仮想ファイルシステムパスを表すこともできます(これは、JARがディスクファイルシステムの一時フォルダではなくメモリに展開されるときに発生する可能性があります)。または、両方とも定義ごとにFileコンストラクターでダイジェストできないネットワークパスです。
ファイルが(パッケージ名のヒントとして)実際に、「誤った」拡張子のみを含む十分に価値のあるプロパティファイル(key=value行を含む)である場合はInputStream、をload()メソッドにすぐにフィードできます。
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
注:staticコンテキスト内からアクセスする場合は、上記の例の代わりにFileLoader.class(または何でもYourClass.class)を使用してgetClass()ください。
properties.filesために2?