关于服务器上单独运行Java class失败

131 阅读1分钟

报错场景

单独在Linux上运行一份Java字节码文件报错:“找不到main方法”

// 编译
javac Baidu.java
// 运行
java Baidu

问题处理

本机已经安装了JDK,并配置了环境变量,要编译运行的类也已经把首行的包名删除。

一般情况下,上述条件肯定是已经满足了的,那么问题在哪?
查看环境变量 cat /etc/profile,对比网上热心网友分享的配置,可以看看CLASSPATH是否配置了当前目录 .

附上一份本机配置

修改完之后,记得执行 source /etc/profile

## JDK安装目录
export JAVA_HOME=/opt/jdk1.8.0_321
export JRE_HOME=${JAVA_HOME}/jre
### :为分隔符,最前面的.表示当前目录
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

配置说明

  • PATH:该环境变量指定一个路径列表,用于搜索可执行的文件
  • CLASSPATH:该环境变量将指定一个路径列表,用于搜索Java编译时或运行时需要用到的类
    • 该变量值最前面有个 . 号,表示当前目录,当我们运行java class的时候,系统就会先在当前目录寻找可执行的class文件

参考链接