【问题描述】
用户root在/root/Exercise文件夹中创建HelloWorld.java 文件,代码如下:
将该文件编译、运行如下:
编译HelloWorld.java生成字节码文件HelloWorld.class,运行HelloWorld.class报错:Error: Could not find or load main class。
【原因分析】
当前目录是.class文件所在目录,要运行.class字节码文件,需要将当前目录加入系统变量CLASSPATH,系统才能找到当前目录下的Java类。
【解决方案】
第一步:将/etc下的profile文件末尾的CLASSPATH系统变量最前面加入.:,. 代表当前路径。
原来的/etc/profie文件中的CLASSPATH为:
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar。
增加后的CLASSPATH为:CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
第二步:命令行输入source /etc/profie,使/etc/profile中的系统变量生效,即可运行。
注意:可以修改系统变量的前提是当前用户为root。在命令行输入source /etc/profie,系统变量只是临时生效,关闭Terminal,系统变量即恢复原状,因为系统变量是在系统启动时加载,所以,本次改变系统变量只有在下次系统重启时才会自动加载,才不用再输入source /etc/profie。
程序运行结果如下: