実行時にクラスを動的にロードしようとしたときに、そのクラスがデフォルト パッケージではないパッケージでコンパイルされた場合、ClassNotFound 例外が発生します。
例:パッケージ名:「モデル」。クラス名:「Cup.class」。これは私のコードです:
File file = new File(fileName);
URL url;
URL[] urls;
String name = file.getName().substring(0, file.getName().length()-6);
file = new File(file.getAbsolutePath().replaceAll(file.getName(), ""));
System.out.println(name);
// Convert File to a URL
url = file.toURL();
urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass(name);
Shape temp = (Shape) cls.newInstance();
ShapeFactory.getInstance().registerShape(temp);