使用命令行方式编译java代码时主类无法加载的问题

早上在看IO部分的时候,根据java编程思想书上的例子写了一个小的demo,由于涉及到main函数args的参数输入问题,本人就用命令行的方去编译代码,可是在在执行java的命令的时候发生了主类无法加载的问题。上网百度了一波后发现网上的大多问题都是由于java的环境变量没有配置好的缘故.下面我把标准的java配置,粘贴如下:
- JAVA_HOME是 D:\Java\jdk1.8.0_11
- Path是 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
- CLASSPATH是 .;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jar
本人的代码

package IOTest;//用命令行编译的时候去掉这一行就可以正常运行
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;

/**
 * All rights reserved.
 * Created by zhaideyin on 2017/10/16.
 * Description:
 */
public class DirList {
    public static void main(String[] args) {
        File mfile = new File("C:\\Users\\Administrator\\IdeaProjects\\untitled\\src\\com\\company");
        String[] mfileList;
        if (args.length == 0) {
            mfileList = mfile.list();
        } else {
            mfileList = mfile.list(new FilenameFilter() {
                private  Pattern mpattern = Pattern.compile(args[0]);
                @Override
                public boolean accept(File dir, String name) {
                    return mpattern.matcher(name).matches();
                }
            });
        }
        Arrays.sort(mfileList,String.CASE_INSENSITIVE_ORDER);
        for(String mitem:mfileList) {
            System.out.println(mitem);
        }

    }
}

使用命令行后的结果如下:
使用命令行方式编译java代码时主类无法加载的问题_第1张图片

根据网络上的方法,原因都是java的环境变量没有配置好,尤其是CLASSPATH的变量配置,很多人都会不小心漏前面的“,;”,导致结果的出错。可是我在检查环境变量配置的时候是没有任何问题的。最后的原因是由于我的代码时直接从idea里面粘贴出来的,所以代码的第一行申明是包的声明,所以在加载的时候,才无法加载这个类。
去掉包的声明后运行的结果:
使用命令行方式编译java代码时主类无法加载的问题_第2张图片

你可能感兴趣的:(使用命令行方式编译java代码时主类无法加载的问题)