使用Class.forName()时ClassNotFoundException

时间:2016-02-02 19:30:24

标签: java

我正在尝试使用Java反射来读取类文件并输出其内容。这是抛出错误的Reflect.java文件代码:

String className = classNames.get(classNum).replace(".class", "");
        String packageAndClassName = packageName + "." + className;
        System.out.println(packageAndClassName);
        try{
            Class<?> c = Class.forName(packageAndClassName);

我阅读包裹内容的命令如下所示

java -classpath . reflect.Reflect package /u/username/Desktop/Experiment/others/package/

这里,arg [0] = package和arg [1] = / u / username / Desktop / Experiment / others / package /

我的类路径看起来像这样:

/u/username/Desktop/Experiment/reflect/:/u/username/Desktop/Experiment/others/package/

&#34;其他&#34;包含包。我不知道我做错了什么。我查了很多答案,他们涉及输入Reflect类的全名,我在命令中做。关于我缺少什么的任何想法?

1 个答案:

答案 0 :(得分:0)

您应该注意classpath参数。我猜你要加载的类不在路径中,所以你需要在那里添加包目录。

另一种选择是使用UrlClassLoader