だから私は次のコードを持っています:
File txtFileDir = new File(MAIN_DIR + "test");
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
};
File[] txtFiles = txtFileDir.listFiles(filter);
Java 1.6がインストールされたWindowsを使用する私の開発マシンでは問題なく動作します。ただし、クラスを unix ボックスに移植して実行しようとすると、FilenameFilter 行で ClassNotFoundException が発生します。UNIXボックスにはJava 1.6も搭載されているため、何が問題なのかわかりません。これと同じことを達成する方法は複数あるので、大したことではありませんが、UNIX ボックスで動作しない理由について誰か考えがあるかどうか知りたいです。
違いがあるかどうかを確認するために、UNIXボックスでもコードをコンパイルしようとしましたが、違いはありませんでした。コードは UNIX ボックスで正常にコンパイルされますが、それでも同じエラーが発生します。誰にも考えはありますか?
アップデート
私は問題を理解しました。どうやら、そのクラスを含むコードをコンパイルすると、クラスの名前と $1 が追加された追加の .class ファイルが作成されたようです。したがって、Test.class と Test$1.class がありました。Test$1.class ファイルを保持すると、正常に機能しました。私が作成した内部クラスのために、その2番目のクラスファイルが必要だと思いますか? 少なくとも私はそれが内部クラスだと思います。
とにかく、助けてくれてありがとう。