公司最近配置升级了新电脑(Win),这意味着所有的软件和环境都要重装一遍,这玩意属于是装一次就几年不用动的东西,脑子里肯定是一遍空白了,又得一个个查教程,教程版本又多好像还都不太一样,故在此总结一篇环境安装指南,涉及后端Java
,Maven
,前端Nodejs
以及Python
双版本安装,希望能为广大开发工作者提供一点点便利,主要也为了自己下次再重装时不迷糊。
初学者同样可以参考使用,能教会你一些思路和原理。下面我们先从Windows中绕不开的环境变量说起:
环境变量小技巧
变量引用
在网上搜索“windows安装java”,不同教程里的步骤通常会有所不同,这通常是由环境变量的维护方式不同而导致的,我们重点掌握一个技巧——变量引用:
如下图红色圈选部分,我先维护一个环境变量叫·JDK1.8
,其变量值为我安装的JDK1.8的路径。之后我再声明其他变量,如果其路径包含上面声明的JDK1.8
,就可以通过%变量名%
的方式来取该变量的值。
这个做法很像我们写程序,先声明一个变量,之后可通过${变量名}
的方式取它的值,只不过在windows中,这个取值符号是前后加百分号的形式。
PATH的维护及作用
环境变量中,有一个特殊的环境变量叫Path
,维护在Path
中的变量可以在windows中的命令提示符或shell中被快捷识别。Path
中可以维护多个目录,中间以英文分号;
分割,且不留空格。早期的windows版本(如win7,winxp)编辑该变量需要注意分号及空格问题,在近几年的windows中(如win10),只需要点击编辑就可以通过图形界面来添加额外的路径:
如图所示,点击编辑后,就会弹出新的窗口方便我们进行变量维护。
以JAVA
环境变量举例,我们在Path中添加了一条变量:
%JAVA_HOME%\bin
根据上面的讲解,%JAVA_HOME%
是取环境变量JAVA_HOME
的值,这个变量我们上面维护过了,其值又是取JDK1.8
的值,即所安装的JDK1.8的路径,取值以后,后面又拼接了一级目录\bin
,那么我们看一下这个目录下有什么:
可以看到,有我们所熟悉的java.exe
和javac.exe
,
那么当我们在控制台中直接输入java -version
的时候,windows
就会从该路径下匹配到java.exe
,并使用java.exe
为我们执行命令。
其作用等效于你输入完整的exe路径名来执行该命令:
但是好处很明显,不用每次都输入完整的路径名,直接使用程序名即可以找到程序,况且每个人安装的路径都有所不同,直接使用程序名可以方便其他程序对java进行操作和集成。
Path优先级
根据上面的讲解我们知道,将exe文件路径维护到Path
目录就可以被windows
系统匹配到,那么如果我维护了多个同名exe在里面会怎么样呢,例如我的电脑中同时安装了Python2
和Python3
,其根目录下都有python.exe
,而我又将他们的路径都添加到环境变量中,会怎么样呢,我们不妨试一下:
实测发现windows
会优先匹配先维护的变量,落实到图中,即是越靠前靠上的变量会越优先被匹配。
掌握了上述原理和技巧,我们后面安装和配置环境变量,乃至安装多环境,就可以得心应手了。
安装Java/JDK
先来个Java小试牛刀,我们安装JDK1.8
来作为平常做公司项目的环境,同时安装JDK17
或JDK21
作为自己尝鲜体验或练手项目的环境。文中以JDK17
为例展示。
1. 下载解压/安装JDK包
这步不过多赘述,从官网下载安装包也好,解压包也好,将jdk包安装或解压到电脑上备用,安装包就一路点下一步或参考其他人教程,我自己习惯用解压包:
如图,我在C\Program Files
目录下创建了一个Java
目录,方便管理不同Java版本,在其内部又解压了Jdk1.8
和Jdk17
的包。
配置环境变量
有了上面的基础,这步就很容易了,首先我们为不同版本JDK
创建环境变量:
创建环境变量这里根据个人习惯选择是
系统变量
还是用户变量
,类似于安装软件时经常让你选择是为所有人安装
还是仅当前用户安装
,笔者习惯创建全局的,即系统变量
,但也有一个缺点,有时候会识别不出来,需要将运行程序以管理员运行
,后面需要注意下。
回归正题,我们创建两个JDK变量
然后我们创建一个统一汇总他们的变量叫JAVA_HOME
,先取JDK1.8的值:
变量都声明好了,接下来我们在Path
中添加JAVA_HOME
下的bin
目录:
一路点击确定,Java的环境变量就维护好了,我们打开cmd试一下:
如果想切换到Java17,只需要把JAVA_HOME
改成取变量JDK17
的值就可以了。(改完后需要重新开一个控制台才能刷新)
安装Maven
再来安装个Maven
巩固一下。首先第一步也是下载安装或解压软件包:
1. 下载解压/安装Maven包
2.配置环境变量
Maven
也是需要环境变量的,需要系统快速识别他的命令mvn
,配置变量方式类似Java:
添加一个MAVEN_HOME
变量:
在Path
中添加MAVEN_HOME
下的bin目录:
一路确定,检验一下成果:
安装Python3 + Python2
上面只是小试牛刀,在Python开发中,经常会存在Python3和Python2都需要使用的场景。下面我们同时安装Python3和Python2,并使其同时生效。
下载安装包
从Python官网下载安装包到本地:
安装Python2
我们先点击安装Python2,理论上一路下一步就可以了,但是由于我们要安装双版本,这里我们统一下路径,都安装在统一的Python
目录下:
安装的时候注意修改下安装路径。
Path这里我们检查下是否为❌,先不要让他创建,一会我们自己添加:
python2安装好了,它不自带pip
包管理工具,需要我们手动安装下。注意我的版本是2.7.18
,早期版本方式可能有所不同,可以参考其他博客。
以管理员身份打开一个控制台,进入刚才安装的目录,执行以下命令:
.\python.exe -m ensurepip --default-pip
至此python2安装完成。
安装Python3
直接点开安装文件一路下一步就可以了,同样注意修改安装路径以及不要添加到Path即可:
安装完成后就算装完了,Python3自带pip,不需要我们再手动安装。
配置环境变量
接下来配置环境变量,首先为Python2和Python3各创建一个变量:
然后在Path中添加上这些Python安装目录本身,以及他们下级的Script
目录:
如果你的开发以Python3为主,偶尔需要使用Python2,则将Python3变量置于靠前顺序,反之则将Python2变量上移。
添加完后,让我们再回顾下这些目录下都有哪些重要命令:
如图可知,我们Python中常用的python.exe
和pip.exe
都被添加到了Path
中,但是Python2和Python3下面都有这两个可执行文件,且名称相同,根据一开始讲到的环境变量加载顺序可知,顺序靠前的先执行,此时使用Python命令是以Python3为优先的:
如果想要使用Python命令时以Python2为基准,调整Path中变量的顺序即可。
复制Python.exe副本
环境变量配置完后,我们观察到Scipts下的pip.exe
还存在pip2.exe
或pip3.exe
等副本,这意味着我们在使用时可以直接使用pip2
,pip3
命令来区分pip的版本。
受此启发,我们直接将Python下的python.exe
和pythonw.exe
也复制一份出来,并改名添加对应python版本的版本号:
之后我们就可以使用python2
,python3
,pip2
,pip3
这些命令来具体指定版本,当使用python
,pip
命令时,则是默认优先执行自己环境变量中配置顺序靠前的版本,实现了python2
和python3
的共存。
安装Node.js(多版本)
前端开发中,不同项目Node的版本也不尽相同,我们同样需要在机器上安装不同版本的node(但是只生效一个),理论上按照上面Java思路配置也可以实现,不同的是对Node而言,windows平台上已经有一个不错的解决方案 —— nvm
下载安装nvm后,只需要将不同版本的node解压到nvm安装目录下,并按版本号重命名一下,就可以比较方便的切换使用:
那么他的原理是什么呢?
观察环境变量发现,nvm安装后帮我们创建了两个环境变量:NVM_HOME
和NVM_SYMLINK
,并将他们都添加到Path
中
NVM_HOME
即是nvm的安装路径,不难看出添加到path就是为了其关键命令nvm
能直接运行,而NVM_SYMLINK
我们看到是指向nodejs目录,这个目录是在nvm安装过程中选定的,实际上我们并没有向这里存放或安装文件,那么这里是什么东西呢?
他是一个快捷方式!也就是说nvm将当前生效的node版本创建了个快捷方式在这里,以此实现一份环境变量来切换不同的版本的效果。属于是另一种思路,值得我们去参考借鉴。
以上就是本篇环境安装指南的全部内容,相信看完以后再有其他的类似的环境的安装不会再难倒你了, 文章如有错误和遗漏,欢迎在评论区指出。