如果包含来自另一个目录的包,如何识别 class
how to identified class if including package from another directory
来自 there,我使用 class 加载程序从其他目录 class 识别
File dir=new File ("D:\dirclass")
fulldir = new File (dir+"\myclass");
filename = new StringTokenizer(fulldir.getName(), ".").nextToken();
URL[] checkclass =
{
dir.toURI().toURL()
};
URLClassLoader urlcl = new URLClassLoader(checkclass);
Class cls = urlcl.loadClass(filename);
如果 class 没有包,这是可行的。
但是如果 class 有包,则无法 运行。
Exception in thread "main" java.lang.NoClassDefFoundError: packclass (wrongname: dirclass\packclass)
还有其他方法吗?
您必须将 类 的完全限定名称指定为 ClassLoader
,例如:
Class cls = urlcl.loadClass("com.mypackage.MyClass");
来自 there,我使用 class 加载程序从其他目录 class 识别
File dir=new File ("D:\dirclass")
fulldir = new File (dir+"\myclass");
filename = new StringTokenizer(fulldir.getName(), ".").nextToken();
URL[] checkclass =
{
dir.toURI().toURL()
};
URLClassLoader urlcl = new URLClassLoader(checkclass);
Class cls = urlcl.loadClass(filename);
如果 class 没有包,这是可行的。
但是如果 class 有包,则无法 运行。
Exception in thread "main" java.lang.NoClassDefFoundError: packclass (wrongname: dirclass\packclass)
还有其他方法吗?
您必须将 类 的完全限定名称指定为 ClassLoader
,例如:
Class cls = urlcl.loadClass("com.mypackage.MyClass");