最近在学习《算法》第四版,自己写了下书上的程序,因为是在idea中写的,直接运行时无法像在命令行中一样直接读入输入,(也可能是我不知道怎么操作),但是在命令行跑的时候可以编译但是运行时,总是出现找不到或无法加载主类的问题,环境变量的设置正确,代码也没什么问题,最后在 知乎上找到了问题的答案,因为包名的问题,直接在java所在的文件夹是无法运的,得到最外层包的上一层目录再运行,如这里我的文件在 src/chapter1/union_find文件夹中,程序中有包名:
package chapter1.union_find;
因此运行的时候,需要到 src 文件夹中,而不是 union_find 文件夹中,特别的,运行的指令要带有包名,且运行所需的文件 tiny.txt要放在 src 文件夹中:
java chapter1.union_find.WeightedQuickUnionUF < tinyUF.txt
运行结果:
查看一些博客,发现环境变量中设置不正确也有可能导致这个问题,主要是忘记了在CLASSPATH中加 “.”,这个点"."指示了当前文件夹,如图:
在这记录下这个小问题。
如有不当之处还请指出,一起学习,一起进步。我的GitHub主页:WangPanHUST