今天我用Linux的vi编辑器编辑一个非常简单的Java程序,在编译的时候没什么问题,但在运行的时候却报错了,今天就详细来分享一下如何解决:
我编辑的hello1.java程序如下:
public class hello1{
public static void main(String args[]){
System.out.println("hello world");
}
}
编译和运行的linux指令如下:
root@ubuntu:~# vi hello1.java #启动vi编辑器,当编辑结束之后会返回终端
root@ubuntu:~# javac hello1.java #编译hello1.java程序
root@ubuntu:~# java hello.java #这个是输错了的指令,跳过
Error: Could not find or load main class hello.java
root@ubuntu:~# java hello1.class #运行但报错了
Error: Could not find or load main class hello1.class
root@ubuntu:~#
报的错误是不能够找到主要的class hello1.class,但我用ls指令查询发现该目录下已经存在了hello1.class了:
root@ubuntu:~# ls
hello1.class hello1.java hello.class hello.java
root@ubuntu:~#
然后我在网上找了找了一下原因,都是说是jdk环境变量配置错误,但我查询我的jdk环境变量并没有错误的(用的linux指令:gedit /etc/profile):
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
并且我检查该版本就是我安装配置的版本:
root@ubuntu:~# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
root@ubuntu:~# javac -version
javac 1.8.0_131
root@ubuntu:~#
说明并不是jdk的问题,想起我是第一次用vi编写java程序,会不会是那里出错了,遗憾地发现那里也并没有错。想了好久,忽然记起是运行语句出错了,我也很无奈。因为现在都是用高级IDE了,正确的编辑的语句如下:
root@ubuntu:~# java hello1
hello world
root@ubuntu:~#
后面不用带class。