关于java编译通过,运行时出错或找不到主类问题解决

    刚接触java,倒腾了半天设施好环境变量,控制台输入java、javac、java -version后,输出正确。终于可以编程序了,很激动,于是直接从老师发的现成的代码包里面考了一份(其实自己敲一个的话,就不用这么费劲,话又说回来,如果自己敲一份的话,自己也不会发现这个问题)。

     执行了 cd.. 、cd chapter1转到所在文件夹

     输入 :javac Hello.java    成功编译

     紧接着输入:java Hello   抛出错误,无法加载主类,顿时心又凉了半截

    在网上搜集本都是说环境变量classpath设置有误,可是我检查了好多遍,查了很多关于环境变量设置的具体操作,发现自己并没有写错。最后找到错误之处是我碰巧撞上了,哈哈哈,算是运气吧。在此分享一下。


原来的代码:

package chapter1.例子1;

public class Hello{
   public static void main (String args[]){
      System.out.println("这是一个简单的Java应用程序");
      Student stu=new Student();
      stu.speak("We are students");
   }
}
class Student{
   public void speak(String s){
      System.out.println(s);
   }
}



修改后:

public class Hello{
   public static void main (String args[]){
      System.out.println("这是一个简单的Java应用程序");
      Student stu=new Student();
      stu.speak("We are students");
   }
}
class Student{
   public void speak(String s){
      System.out.println(s);
   }
}


可以发现只是删除了这句话:

package chapter1.例子1;


为什么会这样?

       首先,包名指的什么,其实简单理解包名就是一个又一个的文件夹,这些文件夹是嵌套关系,父文件夹和子文件夹之间用 '.'(英文句号)隔开。

       如果一个类有包名,那么就不能在任意位置存放它,否则虚拟机将无法加载这样的类。

       如果有一个这样的包名:package  chapter1.例子1

       那么存储文件的目录结构中必须含有如下结构:...\chapter1\例子1

       按照这个原则修改文件夹

       原存储路径:C:\chapter1\Hello.java

       修改后:C:\chapter1\例子1\Hello.java

那含有包名的该怎么编译运行?

      首先是编译:在 Hello.java 所在的文件夹下编译  javac  Hello.java

      然后运行之前,首先要转到包所在文件夹,对于这个程序来说就是 C

     然后 输入: java  包名.主类名 (java  chapter1.例子1.Hello)

    

   

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值