在执行"java xxx"命令时,很容易出现“找不到或无法加载主类”的错误,一般都是classpath的问题导致找不到 xxx class文件。
下面在centos7上模拟重现该错误,并去解决它。
[itdog@db ~]$ clear
[itdog@db ~]$ pwd
/home/itdog
[itdog@db ~]$ java -version
java version “1.8.0_91”
Java™ SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot™ 64-Bit Server VM (build 25.91-b14, mixed mode)
[itdog@db ~]$ mkdir -p com/sohay
[itdog@db ~]$ vi com/sohay/Hello.java
package com.sohay;
public class Hello{
public static void main(String[] args){
System.out.println(“Hello,world !”);
}
}
class ClassNoMain{}
[itdog@db ~]$ javac com/sohay/Hello.java
[itdog@db ~]$ ls com/sohay/
ClassNoMain.class Hello.class Hello.java
[itdog@db ~]$ java com/sohay/Hello
Hello,world !
[itdog@db ~]$ java com.sohay.Hello
Hello,world !
[itdog@db ~]$ cd …
[itdog@db home]$ java com.sohay.Hello
错误: 找不到或无法加载主类 com.sohay.Hello
通过指定classpath来解决问题:
[itdog@db home]$ java -classpath “./itdog” com.sohay.Hello
Hello,world !