シナリオ:ドライブ内のフォルダにJavaクラスがあります。私は特定のクラスからRegexというメソッドを呼び出す必要があります。 Reflection APIを使用してメソッドを呼び出すことはできますか?私は次のコードを持っています:Reflection API - ClassNotFound例外
File dir = new File("H:/TestFolder/sample");
File[] directoryListing = dir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
File[] dirListing = child.listFiles();
for (File fileName : dirListing) {
if (fileName.getName().equals("Regex.java")) {
Class<?> clazz;
try {
clazz = Class.forName("Regex");
Constructor<?> ctor = clazz.getConstructor();
Object regexClass = ctor.newInstance();
....}
私はClassNotFoundExceptionを取得します。誰かが私に間違っていることを教えてもらえますか?
最初に、コンパイルする必要のあるJavaソースファイルからクラスをロードすることはできません。フォルダからコンパイルされたクラスファイルをロードする場合は、[this](http://stackoverflow.com/questions/6219829/method-to-dynamically-load-java-class-files) –
をチェックします。私は 'Regex。 class'はデフォルトパッケージのクラスパスにあります。 –
@PeterLawrey Sir、Class.forName(..)のパッケージ名が不足していると思われますか?私は答えのセクションでこれを述べました。私が間違っている場合、親切に私を修正してください。 –