导致“找不到或无法加载主类”异常的原因有哪些
导致“找不到或无法加载主类”错误的原因有哪些?
除了“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,提示“找不到或无法加载主类”。
------解决方案--------------------
架设你的java文件都放到D:/javatest/access/dessert 这个目录下( access/dessert这两层目录必须存在,因为你的package限制了),你编译完,要回到D:/javatest目录下,然后执行 java access.dessert.Dinner 即可。
------解决方案--------------------
到 access.dessert 目录外面,也就是源码的src目录下面
使用 javac 编译, java 执行
编译时,使用/ 分割包的层次目录
执行时,使用. 分割包的层次目录
除了“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,提示“找不到或无法加载主类”。
------解决方案--------------------
架设你的java文件都放到D:/javatest/access/dessert 这个目录下( access/dessert这两层目录必须存在,因为你的package限制了),你编译完,要回到D:/javatest目录下,然后执行 java access.dessert.Dinner 即可。
------解决方案--------------------
到 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>
编译时,使用/ 分割包的层次目录
执行时,使用. 分割包的层次目录