上午,一个朋友在我的御弓博客(www.yugongweb.com)中留言,说是他按照我的教程安装了jdk,但是在DOS工作台中运行javac的时候出现了“javac不是内部或外部命令,也不是可运行的程序或批处理文件”,他在网上找了一大堆的原因和解决方法,都是让他新建的JAVA_HOME、CLASSPATH这两个变量,然后进行相应配置,结果根本就没有用处。说实话,当时我也感觉特别奇怪啊,按理说不应该有什么错误啊?其实对于Java的初学者来说,配不配置CLASSPATH都可以,因为CLASSPATH是用来设定“类路径”的而且这种方式一般来说不推荐。而设置CLASSPATH的目的是为了把别人写好的类库挪过来好将来自己用。说到底,配个PATH就OK了。可是为什么会出现错误呢?
于是我就问他,是不是在PATH的路径后面没有加英文分号,或者加成了中文的分号,他说都加了。这我就纳闷了。想到这里,我就让他打开他的bin文件夹看看里面有没有javac.exe,他打开一看,没有。
难道是jdk坏了?我自己也不太相信,只能让他试着再安装一次,可是重装之后,还是没有。这下我真是没有办法了。最后想了想,只能让他将装jdk的过程给我复述了一遍。最后终于发现了问题的所在。原来安装jdk的时候选两次安装目录,他全部给安装进入一个目录了。问题就在于,第一次选得目录装的是jdk,而第二次选得目录装的是jre,不是一个东西,原来的文件被jre的文件所覆盖,javac.exe也就没有了。
我将这个问题解决后,那个朋友很感谢,说网上一大堆人都在问这个问题,我上搜索引擎一搜,还真是一大堆,回答基本上都是新建的JAVA_HOME、CLASSPATH这两个变量。如图:
这肯定解决不了问题。所以就将这篇文章分享出来,希望能帮大家一点儿小忙。最后请大家关注我的网站御弓博客和图片右下角的公众号。