首先是困惑很久的问题,问题:为什么有些命令可以通过绝对路径执行,有些命令可以直接执行,有些命令在当前目录下的时候就可以执行。其实说来也很简单。就是我们在Linux中执行一个命令:比如:java 命令,那么shell作为命令解释工具需要找到命令具体代表的内容才可以,那么去哪里找呢?
1:如果配置了path环境变量那么就去path中去寻找,找不到就会报错
2:绝对路径相当于告诉shell去我命令中提供路径下去寻找该命令
3:.在Linux中代表的是当前目录,如果现在就是在当前目录下有该命令那么这种方式也可以执行命令。
javac test.java 生成class 文件后,执行java test 报错,提示找不到主类;究其原因就是java命令可以找到但是test不知道是什么?所以解决办法就是在配置PATH的时候加上.;.代表当前目录;