java环境搭建cmd输入javac_java环境配置——cmd命令行输入java正常显示而javac则显示不是内部或者外部命令-Go语言中文社区...

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

6ed9f90b2789fa5d608cff5013dcfe7e.png

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

80b0244008e1a523e04e108e1c12bd91.png

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

e5e7dcb00422a5903fc294a241e621a4.png

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

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

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

d4ef35a5c1992241388ad3ef424efb11.png

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

b78593ebd526973bf379ca6b6c78b0ba.png

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

9582c4dfaba80a7a8093dbe529e82aca.png

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

96be96c13d51b35a3d15908ecb4a4d59.png

而输入java则能正常显示:

7920392fd3f796c5a8b3b7f655463fe6.png

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

e0751f6935dde30488da04ee91c3e154.png

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

ae7a0952da38d8da568b891389465adf.png

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

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

5665b9a219ae781210a1400ce564f742.png

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

729826368384f4acd9c6e8ecf9677e50.png

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

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

公用jre:

92cb655243d177ce980dd515ce5c5d82.png

专用jre:

8d2772b660b7559d48d8263d5af49a9b.png

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

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

36c92efbb6b0de5fce77f443ecfacc93.png

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

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

e344804d2c0e531785d5ab521292b573.png

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

88abbce6c8e4e9479feeaff777106d26.png

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

—如果文章对您有一点点帮助,还请打赏一二,您的鼓励将是我前进的不竭动力—

公众号为“非著名IT表演艺术家”,比较中二,就是灵光一闪,然后这个名字就冒出来了……


版权声明:本文为weixin_39750410原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。