您的位置:首页 > 编程语言 > Java开发

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

2017-10-16 12:57 483 查看
早上在看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的环境变量没有配置好,尤其是CLASSPATH的变量配置,很多人都会不小心漏前面的“,;”,导致结果的出错。可是我在检查环境变量配置的时候是没有任何问题的。最后的原因是由于我的代码时直接从idea里面粘贴出来的,所以代码的第一行申明是包的声明,所以在加载的时候,才无法加载这个类。

去掉包的声明后运行的结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐