要在CMD命令行中使用java 运行java程序,关于出现 “找不到或无法加载主类 ”错误的解决办法
出处:http://blog.chinaunix.net/uid-27106528-id-5209914.html
网络上基本都是在说关于"classpath"路径的配置问题,要加入 ” .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;“
前面加入”.;",表面要在当前目录下面寻找类。(关于classpath路径的配置问题)
如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;
举例:代码如下:
package Test;
public class helloworld {
public static void main(String args[])
{
int num=10;
int max=Integer.MAX_VALUE;
System.out.println("hello world!");
System.out.println("num++*num++="+ num++*num++ );
System.out.println("max integer="+ max);
}
}
在文件所在的当前目录下,运行javac helloworld.java编译成功,生成helloworld.class文件,这个时候,你用java helloworld 想运行程序,总会出现”找不到或无法加载主类“的错误。
这个时候要注意,之所以找不到,是因为helloworld在Test包名的下面。
- 方法一
去掉 ”package Test;“ 重新用javac 编译helloworld.java,再运行java helloworld 就可以了。
- 方法二
或者新建一个包名一样的文件夹,在本例中,为建立一个Test的文件夹,把java文件移到该目录下。然后在Test文件夹的平级下,运行javac Test/hellohelloworld.java编译程序,运行java Test.helloworld 则可以运行含有包名的java程序。(即把Java文件保存在与包名对应的文件夹下, 在包名文件目录的上一级文件目录下加上包名进行操作)
原理说明:
java 程序运行class文件,对于有包名的类,java把包名当成文件夹处理,”包名+类名“ 相当于 ”文件夹目录+类名“来寻找类。
测试结果:
方法一:
helloworld.java文件保存在D盘目录下:
删除包名:
结果:
方法二:
把helloworld.Java文件保存在与包名对应的文件夹下:
在包名文件目录的上一级文件目录下加上包名进行操作,此处是 D盘目录下:
声明:
本博客所有内容来源于网络、书籍、和各类手册。
内容均为非盈利,旨为方便查询、总结备份、开源分享。
部分转载内容均有注明出处,如有侵权请告知,马上删除。