找不到类文件|java运行显示“找不到或无法加载主类”!

A. java运行显示“找不到或无法加载主类”!

该如何解决呢?解决办法如下:

1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:

.;%java_home%lib;%java_home%lib ools.jar; (注意前面的 . 以及 ; 缺一不可)

其中.表示当前路径,;表示分隔符。

2.如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;

比如说如下测试代码:

在文件所在的当前目录下,运行javac TestPlusPlus.java编译成功,生成TestPlusPlus.class文件,这个时

候,你用javaTestPlusPlus想运行程序,总会出现”找不到或无法加载主类“的错误。这个时候要注意,

之所以找不到,是因为TestPlusPlus在HelloWorld包名的下面。

解决办法:

1.去掉 ”packageHelloWorld;“ 重新用javac 编译TestPlusPlus.java,再运行javaTestPlusPlus就可以了。

2.新建一个包名一样的文件夹,在本例中,为建立一个HelloWorld的文件夹,把TestPlusPlus.java文件移到该目录下。

然后在HelloWorld文件夹的平级下,打开DOS命令窗口,运行javacHelloWorld/TestPlusPlus.java编译程序,

运行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运行含有包名的java程序。

注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令行无法判断包名与java程序名的分割点在哪里,

从而还是找到或者无法加载主类。

原理说明:

java程序运行class文件,对于有包名的类,java把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。

B. 运行java类文件,出现找不到或无法加载主类,这是怎么回事啊

运行java类文件,出现找不到或无法加载主类,最大可能性是你的主类的包或者类路径没有设正确看看你的类路径和classpath变量,如果不包含你的主类所在的路径或者包,请使用java的-D参数设置就你图上的情况,你应该将你的当前目录编译过的文件所在目录增加在类路径中,然后执行:java你的类名注意必须是全包名

C. Java 错误: 找不到或无法加载主类。怎么办

检查环境变量配置:

JAVA_HOME:D:Javajdk1.8.0_91

CLASSPATH:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;(前面有英文点号)

Path:%JAVA_HOME%in;%JAVA_HOME%jrein;

设置没问题。java -version测试,显示JDK版本正常;

我很确定自己的JDK设置没问题,在Eclipse下JAVA文件执行正常,但显示 错误: 找不到或无法加载主类 j2se001.HelloWorld 真的好无奈。

1.网上说要把jdk环境变量设置到用户变量,而不是用户变量;设置后无效,都重启过电脑,没毛用;

2.此帖子给帮了大忙:http://bbs.csdn.net/topics/391862656?page=1

主要观点就是:JDK编译正常,那么JAVA_HOME配置正确。如果这样的话,那你的HelloWorld类的放的实际位置,package设置的和类路径的设置不匹配,执行器找不到类文件;说白了就是编译后的class文件的路径问题。

两种解决办法:

1.把package语句去掉,让编译文件处于当前文件夹

例如我将java文件的package去掉,放在D盘根目录

2.不去掉package,在java文件同级目录加一个package相同名称的文件夹;

HelloWorld.java在src的j2se001文件夹下,j2se001下建一个同package名称的文件夹

或者下面这种,与上面实质是一样的,只是在哪个目录执行java类文件(还是在java类文件同级目录建一个同package名称相同的文件夹);

删package或者加package同名folder的实质:执行器指向package文件夹

D. 找不到或无法加载主类!

可能是因为java文件不在项目的src路径内的原因导致该情况,即源代码未被eclipse编译,字节码不存在,因此无法运行了。

此时,可以在项目名上面点击右键,找到Builder Path,选择Configure Build Path,再选择Source面板,再点击Add Folder,把源代码所在的上层目录加进来。

如果你的系统找不到这个jar文件的话,把这个jar文件删掉或是重新加载进来就可以了。

有时候,可以采用一种比较快捷的办法,打开那些带有main函数的类,全选并剪切,在进行保存,之后关闭,再重新打开,然后再复制并粘贴进来,开启eclipse的自动编译,让 eclipse 再重新编译一下。

E. java找不到类

cmd中编译Java文件的话,像你这样跨盘访问的话,虽然环境变量设置好了,但还需设置类路径classpath,否则也是访问不到的,如,

C:>setclasspath=E:jav

set classpath=你的Java文件所在盘(E:jav),然后在C盘就可以直接访问了,如:

C:Documents and SettingsAdministrator>java Tamt

第二种方式就是,需要切换到Java文件所在的目录下,如:

C:>E:C:>cdE:javE:jav>javaTamt回车后即可运行

F. java 找不到类错误

出现这个问题可能有两个可能:第一:类名和文件名出现不一致的情况(必须保持一致)第二:环境变量配置有问题 首先在开始运行里cmd 回车 javac回车如果出现'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。就需要修改环境变量:我的电脑–属性-高级-环境变量–系统变量:新建 path D:\Program Files\Java\jdk1.6.0_10\bin新建 classpath 变量值为点分号(.;)确定开始–运行— cmd 回车 javac 回车 -proc:{none,only} 控制是否执行注释处理和/或编译。 -processor <class1>[,<class2>,<class3>…]要运行的注释处理程序的名称;绕的搜索进程 -processorpath <路径> 指定查找注释处理程序的位置 -d <目录> 指定存放生成的类文件的位置 -s <目录> 指定存放生成的源文件的位置 -implicit:{none,class} 指定是否为隐式引用文件生成类文件 -encoding <编码> 指定源文件使用的字符编码 -source <版本> 提供与指定版本的源兼容性 -target <版本> 生成特定 VM 版本的类文件 -version 版本信息 -help 输出标准选项的提要 -Akey[=value] 传递给注释处理程序的选项 -X 输出非标准选项的提要 -J<标志> 直接将 <标志> 传递给运行时系统出现这个即可,再次运行,就成功了

G. java运行显示“找不到或无法加载主类”怎么回事

该如何解决呢?解决办法如下:

1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:

.;%java_home%lib;%java_home%lib ools.jar; (注意前面的 . 以及 ; 缺一不可)

其中.表示当前路径,;表示分隔符。

2.如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;

比如说如下测试代码:

在文件所在的当前目录下,运行javac TestPlusPlus.java编译成功,生成TestPlusPlus.class文件,这个时

候,你用javaTestPlusPlus想运行程序,总会出现”找不到或无法加载主类“的错误。这个时候要注意,

之所以找不到,是因为TestPlusPlus在HelloWorld包名的下面。

解决办法:

1.去掉 ”packageHelloWorld;“ 重新用javac 编译TestPlusPlus.java,再运行javaTestPlusPlus就可以了。

2.新建一个包名一样的文件夹,在本例中,为建立一个HelloWorld的文件夹,把TestPlusPlus.java文件移到该目录下。

然后在HelloWorld文件夹的平级下,打开DOS命令窗口,运行javacHelloWorld/TestPlusPlus.java编译程序,

运行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运行含有包名的java程序。

注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令行无法判断包名与java程序名的分割点在哪里,

从而还是找到或者无法加载主类。

原理说明:

java程序运行class文件,对于有包名的类,java把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。

H. java为什么编译的时候提示找不到类文件

project–>clean–>OK….将class文件清除,然后重新编译,eclipse是开源的,出现bug很正常,有时候工程太大,就出现这样的问题,用这种办法是最常用的方法

I. 关于java提示找不到这个类 明明文件存在

这个 wrong name 是重点,它是在说你搞错了大小写或者目录结构。2个常识,相信教材上都讲了:1、Java 区分大小写,文件名必须与类名完全相同,大小写也要一样。2、Java 包名要和类文件所在的子目录结构一致 (相对于 classpath 根节点目录或jar文件内的根节点)。NoClassDefFoundError 或 ClassNotFoundException 是两个不同类型的错误,一个是 Error 一个是 Exception,其中 Error 是表示这个错误无法自动恢复,你试多少次都没用(如果你不重启这个应用程序进程的话),Exception 则可能在下次再执行就正常了。


赞 (0)