导致“找不到或无法加载主类”错误的原因有哪些?

J2EE 码拜 10年前 (2015-04-18) 1691次浏览 0个评论
 

除了“classpath环境变量没有加入当前目录”,此问题我已经确认。是否还有其它原因导致,为了更好的获得大家的帮助,我将代码贴出。

由编译文件Cookie.java、Dinner.java两个文件组成
Cookie.java文件如下:
//: access/dessert/Cookie.java
package access.dessert;

public class Cookie {
  Cookie() {
   System.out.println(“Cookie constructor”);
  }
  void bite() { System.out.println(“bite”); }
} ///:~

Dinner.java文件如下:
//: access/Dinner.java
// Uses the library.
package access.dessert;
//import access.dessert.*;

public class Dinner {
  public static void main(String[] args) {
    Cookie x = new Cookie();
    //! x.bite(); // Can””t access
  }
}

如上文件能编译过,
执行命令:java Dinner,提示“找不到或无法加载主类”。

导致“找不到或无法加载主类”错误的原因有哪些?
运行其它基本的程序没有问题,简单的Helloworld.java不会出错。我想会不会还有其它原因导致这个错误,希望了大牛们能给个深入解析。谢谢!
导致“找不到或无法加载主类”错误的原因有哪些?
25分
架设你的java文件都放到D:/javatest/access/dessert   这个目录下( access/dessert这两层目录必须存在,因为你的package限制了),你编译完,要回到D:/javatest目录下,然后执行 java  access.dessert.Dinner 即可。
导致“找不到或无法加载主类”错误的原因有哪些?
15分
到 access.dessert 目录外面,也就是源码的src目录下面
使用 javac 编译, java 执行

D:\jaabc\src>javac com/main/Hello.java

D:\jaabc\src>java com.main.Hello
Hello World
id= 123, name= nimei

D:\jaabc\src>

 
编译时,使用/ 分割包的层次目录
执行时,使用. 分割包的层次目录

导致“找不到或无法加载主类”错误的原因有哪些?
如果 我把两个文件都去掉 package access.dessert; 编译运行不会出这个错误。
导致“找不到或无法加载主类”错误的原因有哪些?
引用 2 楼 oh_Maxy 的回复:

架设你的java文件都放到D:/javatest/access/dessert   这个目录下( access/dessert这两层目录必须存在,因为你的package限制了),你编译完,要回到D:/javatest目录下,然后执行 java  access.dessert.Dinner 即可。

谢谢! 一直没刷新自己的问题答复,没想到热心的朋友你已经给出了正确的答案。
谢谢您!我已经明白了  package 的真正含意了。

导致“找不到或无法加载主类”错误的原因有哪些?
引用 3 楼 magi1201 的回复:

到 access.dessert 目录外面,也就是源码的src目录下面
使用 javac 编译, java 执行

D:\jaabc\src>javac com/main/Hello.java

D:\jaabc\src>java com.main.Hello
Hello World
id= 123, name= nimei

D:\jaabc\src>

 
编译时,使用/ 分割包的层次目录
执行时,使用. 分割包的层次目录

谢谢! 综合你和楼上朋友的回复我已经真正明白了 package在“javac、java”的作用。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明导致“找不到或无法加载主类”错误的原因有哪些?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!