ClassLoader.loadClass()方法执行时提示‘ClassNotFoundException’

来源:互联网 发布:2016东华理工行知分院 编辑:程序博客网 时间:2024/06/05 14:38

eclipse中出现‘ClassNotFoundException’错误

在eclipse运行ClassLoader类时,出现如下错误

java.lang.ClassNotFoundException: Tester
代码如下:

package base1;class Tester {static{System.out.println("Tester类的静态初始化块...");}}public class ClassLoaderTest {public static void main(String[] args)throws ClassNotFoundException{try{ClassLoader cl = ClassLoader.getSystemClassLoader();cl.loadClass("Tester");System.out.println("系统加载Tester类");Class.forName("Tester");}catch(Exception e){e.printStackTrace();}}}
正确代码如下:

package base1;class Tester {static{System.out.println("Tester类的静态初始化块...");}}public class ClassLoaderTest {public static void main(String[] args)throws ClassNotFoundException{try{ClassLoader cl = ClassLoader.getSystemClassLoader();cl.loadClass("base1.Tester");System.out.println("系统加载Tester类");Class.forName("base1.Tester");}catch(Exception e){e.printStackTrace();}}}
需要在loadClass()方法中加入包名,Class的forName()方法中加入包名,才能正确找到class文件地址。

查看Eclipse项目classes文件的默认输出路径。

项目----右键----‘Java Build Path’,classer默认路径如下图


cmd中出现错误: 找不到或无法加载主类 ClassLoaderTest

通常出现这种错误有三种原因:

一:环境变量配置有误;

二:执行方法有误,执行时应先执行javac,生成xxx.class文件,在执行java;

三:程序有问题,比如我之前直接在cmd下执行eclipse下的java文件,始终报“错误: 找不到或无法加载主类”这个异常,但是在eclipse下执行同一个文件却没有问题,后来仔细发现原来是java文件中的包名导致的,删除掉红色框中的内容即可正常运行。这是在编译通过的情况下执行编译后的文件出现的问题,如果编译都没通过那就是java文件的问题,仔细检查一下文件是否有异常,比如类没有被public修饰,或者main方法没有static修饰等等。


阅读全文
0 0
原创粉丝点击