关于Java的“找不到或无法加载主类”

“Hello Java, I'm new here”。是的,我是一个Java新手,和很多新人一样在初学Java一样,会遇到一些问题,好在凭借着C++的编程基本功以及对Linux的熟练大部分问题都能很快搞明白,学习也没遇到什么阻力,但是在做Java编程思想4th第六章的关于访问权限和包的笔记总结时遇到了一个关于package命名及导入的问题。

环境:Ubuntu 16.04.3 LTS x86_64

首先,我要安装部署Java的开发环境,如下图所示:

关于Java的“找不到或无法加载主类”

由于我的远程主机上还没有安装Java开发环境,因此查看Java版本时,系统提示我"Java"命令暂不可使用,我使用apt-get安装了1.8版本的openjdk。安装好之后,如下图所示:

关于Java的“找不到或无法加载主类”

Java开发环境搭建时是需要进行额外配置的,主要是四个环境变量的配置:JAVA_HOME、JRE_HOME、CLASSPATH、PATH。前三个环境对于我这样的新人来说,显然是还不知道其作用和意义的,最后一个PATH环境变量倒是很熟悉。

PATH环境变量是用来简化命令的,当你在Linux的终端中通过shell来与计算机交互时,你需要向shell发出指令,shell接收之后解析执行,对于每个命令你必须明确指明,明确指明指的是其所在的绝对路径,比如我要ping一个网址,如下图所示:

关于Java的“找不到或无法加载主类”

上图中,我指出我要执行的程序的具体路径,然后这个程序接受一个网址参数。图中输出的结果和直接用ping没什么不同,除了如何指出ping这个程序之外。实际上,每个命令都是硬盘上某个文件夹下面的程序,要执行该程序就得告诉计算机它在哪里,不然计算机怎么知道呢?每次执行一个命令都要指出这个程序具体在哪,但是如果这个程序的具体路径很长怎么办?就像下面的例子一样:

难道用户每次都要写 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 这么长长一串吗?这显然是很费力的。 因此计算机中使用一个PATH环境变量来帮助减少那些不必要的输入,方法是在PATH环境变量事先存储一些路径,当我们只写程序名称时,系统自动在PATH环境变量中的路径下搜索该程序名称,如果找到就执行,找不到就报错。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e7d6597f8de1345899cb3bbc2d530e68.html