初学JAVA,今天在命令行界面中尝试编译和运行Hello.java

(文件当前目录.....\src\chapter1)

1 package chapter1;
 2 
 3 public class Hello {
 4     public static void main(String[] args){
 5         if(args.length==0)
 6         System.out.println("hello!");
 7         else{
 8             for(int i=0;i<args.length;i++)
 9             System.out.println(args[i]);
10         }
11     }
12 }

时遇到错误提示:

错误: 找不到或无法加载主类 Hello

经查阅资料解决了这个问题。

 

问题原因:

JAVA中包的概念不明白。本程序段是之前在Eclipse中编辑测试好的,直接copy过来使用,使得程序段中留下多余的包的声明

1 package chapter1;

Hello类中把它放到了chapter1包下,而环境变量classpath设定了当前目录,当前的目录是.....\src\chapter1,执行器会在当前的目录下找chapter1这个包,而实际上chapter1下并没有。所以找不到类Hello。

 

 

解决方法:

1、把package语句去掉

2、在当前目录下再创建个chapter1文件夹,把源文件放进去。(.....\src\chapter1\chapter1)/运行时回退到上一层目录(.....\src)

注意编译是一定要在文件所在路径下(.....\src\chapter1),否则会出错。

 

相同错误其他可能情况:检查环境变量是否正确