java环境配置——cmd命令行输入java正常显示而javac则显示不是内部或者外部命令

版权声明: https://blog.csdn.net/u014483914/article/details/83211379

重装系统之后第二发,配置pycharm,意料之外的错误,启动的时候竟然要求配置jdk,瞬时蒙蔽,不记得之前有这么一出啊,上图:

于是乎就去官网下载了jdk:

找到适合自己的版本,我选的最后一个windows64位的,下载好之后直接安装就行,貌似这里不会有啥问题:

安装完成需要在配置环境变量,这样系统才能找到我们的java命令,具体的原理大家可以搜一下,网上讲的很清楚~~

环境变量需要设置三个地方,java_home,classpath和path,直接上图吧:

java_home变量值为安装的jdk路径,最好直接复制,手动输入容易出问题

classpath变量值,注意最前方的‘.’,%java_home%会自动翻译成上面所设的路径,这样保证了当更改java_home的值时classpath自动修改,省去了很多麻烦

最后是设置path的值,在系统变量中找到它,编辑,这里有两条:

配置完环境后问题来了,打开cmd命令窗口,输入javac,显示如下:

而输入java则能正常显示:

emmmmm,什么鬼,难道没有装好或者是路径错了,然后就是各种搜,最后发现了问题,查看系统变量path的值,发现%java_home%没有翻译成对应的路径,原来在win10中已经不支持这种写法(这是某位朋友说的),但这样也不严谨,因为classpath中的%java_home%翻译成了正确的路径,我想应该是这样,前两个变量是在用户变量中添加的,而path则是系统变量,可以理解成二者不在一个权限范围内,故无法识别,那我们就将path的值改为绝对路径,并且移至最上边,貌似这个是按顺序查找的:

这样的话打开cmd输入javac就能正常显示了:

这里还有几个重要的点,在用户变量中也有一个path,这个和系统变量中的path是有去别的,大概意思就是系统变量适用于所有用户,而用户变量只服务于当前用户,我们为了方便一般直接设置系统变量,当然在本例中在用户变量中使用%java_home%也是可以的,亲测可用:

我删除了系统变量中的两条设置,改为用户变量

很明显很看到自动识别了%java_home%

这样在cmd中输入java和javac都是可以的~~

还有一个问题就是下载的jdk有两个jre,一个专用一个公用,详解大家可以自行查询,我们设置的时专用jre,即jdk文件夹中的jre:

公用jre:

专用jre:

还有一个事儿,有位朋友说我们使用的java命令其实不是jdk\bin中的java而是jdk\jre\bin中的,我试了一下,分别移除二者中的java.exe,在cmd中均能正常显示java,当然,他的前提是没有将jre\bin加入到环境变量中,系统自动加入~~而我是把两个路径都手动加入到了环境变量,这样更保险一点,毕竟win10有很多设置和之前的win7不一样了。。

不知道大家都没有注意到在系统变量path中的第一条路径(查看前图),当时javac错误怀疑过这个,打开之后是这样的,我一看没有javac便拷贝了jdk\bin中的javac至此,但结果还是不行:

这里还是需要注意一下的,有的朋友遇到了和我相反的问题。javac可以正常显示而java报错,错误提示正是找不到上面的路径,所以可以推测cmd命令行中的java命令应该默认的是该路径下的java(不知道这样对不对,现在已经有三个地方有java.exe了,如果算上公用jre则有四个了),所以比较保险的是将我们设置的两个路径加到该路径前边,使用jdk\bin或者jdk\jr\bin中的java.exe,而具体用哪个应该是和这两个路径的先后顺序有关,也没啥关系,毕竟java.exe都是一样的。。

看一下该路径下的java版本,当我们修改版本时一定要注意这里,有的朋友就栽倒了这里,保险的是直接删除该文件

最后一个问题,其实一开始测试就该想到是路径的问题:

这个截图是在管理员用户输入javac失败后转到jdk\bin路径显示的结果,很明显是系统无法正确找到javac……我还看了一下javac只在jdk\bin中有,而jre\bin中是没有的,emmmmm,不细说了,要去吃饭了,这一点如果理解了jdk和jre的区别便很好解释了。

猜你喜欢

转载自blog.csdn.net/u014483914/article/details/83211379