java运行时 报错 Error: Could not find or load main class test

报错 Error: Could not find or load main class test
可能原因:
1、没有配置环境变量
2、当 java 脚本中还有 package 定义时,需要创建 package 名字的文件夹,将.java 和.class 文件放到文件夹中,执行时也需要带上文件路径

配置 JAVA_HOME 和 PATH
[root@node1 ~]# more .bash_profile
# .bash_profile
# Get the aliases and functions
if [-f ~/.bashrc]; then
. ~/.bashrc
fi
export JAVA_HOME=/home/dmdba/dmdbms/jdk
export PATH=$PATH:$HOME/bin:/home/dmdba/dmdbms/jdk/bin:/home/dmdba/dmdbms/jdk/jre/bin

[root@node1 ~]#source .bash_profile

java 版本:
[root@node1 ~]# java -version
openjdk version "1.8.0_20"
OpenJDK Runtime Environment (build 1.8.0_20-b26)
OpenJDK 64-Bit Server VM (build 25.20-b23, mixed mode)


案例 1

简单 demo
[root@node1 ~]# more test.java

public class test{
public static void main(String args[]) {
System.out.println("hello World");
}
}

[root@node1 ~]# javac test.java
[root@node1 ~]# java test
Error: Could not find or load main class test

错误原因:没有配置 CLASSPATH

[root@node1 ~]# pwd
/root

将 test.class 所在的路径加入到环境变量中
export CLASSPATH=/root

source .bash_profile 使环境变量生效

再次尝试运行,成功
[root@node1 ~]# java test
hello World

案例 2

已经配置 JAVA_HOME、PATH、CLASSPATCH

简单 demo
[root@node1 ~]# more demo.java

package demo ;

public class demo{
public static void main(String args[]) {
System.out.println("hello World");
}
}


[root@node1 ~]# javac demo.java
[root@node1 ~]# java demo
Error: Could not find or load main class demo

错误原因:没有创建相应的文件夹

[root@node1 ~]# mkdir demo
[root@node1 ~]# mv demo.* ./demo
[root@node1 ~]# ll
total 20
drwxr-xr-x 2 root root 4096 Mar 31 06:44 demo
[root@node1 ~]# java demo.demo
hello World