Java:加载外部类

时间:2011-12-02 15:19:37

标签: java class load external

如何加载外部类文件? 我发现了一个如下例子,但它不起作用。

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

任何想法如何加载? 在同一个项目中加载类的正常情况很简单:

           Example.main(args)

如何为外部课程执行此操作?

2 个答案:

答案 0 :(得分:2)

Class.forName()采用完全限定的类名而不是路径作为参数。示例“com.example.MyApp”http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html#forName(java.lang.String) 请改为设置类路径。

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

答案 1 :(得分:0)

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

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

此外,从您的调用中删除.class,参数应该类似于:

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