Java:装入外部类



如何加载外部类文件?我找到了下面的例子,但它不起作用。

       //string containing full path of external class file
       String class1 = "...\Example.class"
       Class loadClass = Class.forName(class1);
       loadClass.main(args);

你知道如何加载吗?通常情况下,在同一个项目中加载一个类很容易:

           Example.main(args)

如何为外部类做到这一点?

class . forname()接受一个完全限定的类名,而不是路径作为参数。例如com . Example。"MyApp"http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html forName(以)考虑设置类路径。

编辑:或者如果您需要在运行时基于参数动态加载类,请考虑使用自定义类加载器。http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ClassLoader.html

您的。class文件必须在类路径中正确的位置。

这意味着如果.class文件有一个package p1.p2的包声明,那么它必须放在类路径中,路径为/p1/p2/Whatever.class。如果你的。class文件在一个(正确构建的)。jar文件中,那么它已经在。jar的良好文件夹结构中了,你只需要把。jar放在类路径的根目录下。

同样,从调用中删除.class,参数应该是这样的:

Class<?> clazz = Class.forName("java.lang.String");

最新更新