背景
还记得上一次用命令行编译运行java文件还是在大学刚接触java的时候,今天由于在学习jvm相关知识,为了避免在idea来回添加vm参数的麻烦,选择直接在虚拟机上添加运行时参数来学习相关命令,但在运行java文件时报错:Error: Could not find or load main class。找不到或无法加载主类
问题原因
一、java执行class文件是根据CLASSPATH指定的地方来找,不是我们理解当前目录。如果希望它查询当前目录,需要在CLASSPATH中加入“.;”,代表当前目录。
二、java执行class文件对package的路径是强依赖的。它在执行的时候会严格以当前用户路径为基础,按照package指定的包路径转化为文件路径去搜索class文件。
解决方案
我偷了个懒,没改环境变量,直接把java文件里的包名全部删掉,然后重新在文件所在目录编译运行即可。