【发布时间】:2016-11-19 09:02:42
【问题描述】:
我有两节课
package pack2;
import java.lang.*;
import java.io.*;
class eg
{
public void show()
{
System.out.println("ClassPath set to this class");
}
}
这是在 C:\NNK\pack2 中。完全限定名称是 pack2.eg
另一个程序是
import java.io.*;
import java.lang.*;
import java.net.*;
class classload
{
public static void main(String args[])
{
//have to load the eg class here. Dont know what i have done below is right or wrong
try
{
Class b=Class.forName("pack2.eg");
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
try
{
eg z=(eg) b.newInstance();
}
catch(InstantiationException l)
{
l.printStackTrace();
}
z.show();
System.out.println("b.getName()="+b.getName());
}
}
此程序位于 C:\NNK 我必须在这里加载 eg 程序。我试图在 Oracle 中学习它,看到了它的其他相关堆栈溢出问题。 Dynamically loading a class in Java 但它没有用,我一直收到错误 b 是未知的,z 是未知的符号。 还有一种方法可以使用目录文件名(例如:C:\NNK\pack2\eg)来加载一个类
【问题讨论】:
-
阅读 Java 范围规则。你必须在第一个
try之前在顶层声明b和z
标签: java class reflection classloader dynamic-class-loaders