参考资料:/wangxiaoha/p/6293340.html
场景:
使用java命令运行.class文件时出现:“错误: 找不到或无法加载主类”:
解决方法:
使用 java 包名+类名执行,如下:在src下使用 java com.lznb.cloud.TCPEchoClient
原因:
1.java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中寻找的。
2.我们忽略了package的影响。
注意:
在main目录下使用java命令执行 :java com.lznb.cloud.TCPEchoClient,路径是重复的,所以在这里我们需在src下执行即可
总结:
一、java执行class文件是根据CLASSPATH指定的地方来找,不是我们理解当前目录。如果希望它查询当前目录,需要在CLASSPATH中加入“.;”,代表当前目录。
二、java执行class文件对package的路径是强依赖的。它在执行的时候会严格以当前用户路径为基础,按照package指定的包路径转化为文件路径去搜索class文件