在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项

要在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 想运行程序,总会出现”找不到或无法加载主类“的错误。
这个时候要注意,之所以找不到,是因为helloworldTest包名的下面。

  1. 方法一

去掉 ”package Test;“ 重新用javac 编译helloworld.java,再运行java helloworld 就可以了。

  1. 方法二

或者新建一个包名一样的文件夹,在本例中,为建立一个Test的文件夹,把java文件移到该目录下。然后在Test文件夹的平级下,运行javac Test/hellohelloworld.java编译程序,运行java Test.helloworld 则可以运行含有包名的java程序。(即把Java文件保存在与包名对应的文件夹下, 在包名文件目录的上一级文件目录下加上包名进行操作)

原理说明:
java 程序运行class文件,对于有包名的类,java把包名当成文件夹处理,”包名+类名“ 相当于 ”文件夹目录+类名“来寻找类。

测试结果:
方法一:
helloworld.java文件保存在D盘目录下:
在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项_第1张图片
删除包名:
在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项_第2张图片
结果:
在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项_第3张图片
方法二:
把helloworld.Java文件保存在与包名对应的文件夹下:
在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项_第4张图片
在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项_第5张图片
在包名文件目录的上一级文件目录下加上包名进行操作,此处是 D盘目录下:
在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项_第6张图片

声明:
本博客所有内容来源于网络、书籍、和各类手册。

内容均为非盈利,旨为方便查询、总结备份、开源分享。

部分转载内容均有注明出处,如有侵权请告知,马上删除。

你可能感兴趣的:(Java)