换电脑了要重装开发环境好烦?来看看这篇常用环境搭建指南(Windows)

5,688 阅读9分钟

公司最近配置升级了新电脑(Win),这意味着所有的软件和环境都要重装一遍,这玩意属于是装一次就几年不用动的东西,脑子里肯定是一遍空白了,又得一个个查教程,教程版本又多好像还都不太一样,故在此总结一篇环境安装指南,涉及后端JavaMaven,前端Nodejs以及Python双版本安装,希望能为广大开发工作者提供一点点便利,主要也为了自己下次再重装时不迷糊。

初学者同样可以参考使用,能教会你一些思路和原理。下面我们先从Windows中绕不开的环境变量说起:

环境变量小技巧

变量引用

在网上搜索“windows安装java”,不同教程里的步骤通常会有所不同,这通常是由环境变量的维护方式不同而导致的,我们重点掌握一个技巧——变量引用: 如下图红色圈选部分,我先维护一个环境变量叫·JDK1.8,其变量值为我安装的JDK1.8的路径。之后我再声明其他变量,如果其路径包含上面声明的JDK1.8,就可以通过%变量名%的方式来取该变量的值。

1a495698a012454fb15d469025bcebd4.png

这个做法很像我们写程序,先声明一个变量,之后可通过${变量名}的方式取它的值,只不过在windows中,这个取值符号是前后加百分号的形式。

PATH的维护及作用

环境变量中,有一个特殊的环境变量叫Path,维护在Path中的变量可以在windows中的命令提示符或shell中被快捷识别。Path中可以维护多个目录,中间以英文分号;分割,且不留空格。早期的windows版本(如win7,winxp)编辑该变量需要注意分号及空格问题,在近几年的windows中(如win10),只需要点击编辑就可以通过图形界面来添加额外的路径:

image.png image.png

如图所示,点击编辑后,就会弹出新的窗口方便我们进行变量维护。 以JAVA环境变量举例,我们在Path中添加了一条变量:

    %JAVA_HOME%\bin

根据上面的讲解,%JAVA_HOME%是取环境变量JAVA_HOME的值,这个变量我们上面维护过了,其值又是取JDK1.8的值,即所安装的JDK1.8的路径,取值以后,后面又拼接了一级目录\bin,那么我们看一下这个目录下有什么:

image.png

可以看到,有我们所熟悉的java.exejavac.exe, 那么当我们在控制台中直接输入java -version的时候,windows就会从该路径下匹配到java.exe,并使用java.exe为我们执行命令。

image.png

其作用等效于你输入完整的exe路径名来执行该命令:

image.png

但是好处很明显,不用每次都输入完整的路径名,直接使用程序名即可以找到程序,况且每个人安装的路径都有所不同,直接使用程序名可以方便其他程序对java进行操作和集成。

Path优先级

根据上面的讲解我们知道,将exe文件路径维护到Path目录就可以被windows系统匹配到,那么如果我维护了多个同名exe在里面会怎么样呢,例如我的电脑中同时安装了Python2Python3,其根目录下都有python.exe,而我又将他们的路径都添加到环境变量中,会怎么样呢,我们不妨试一下:

image.png image.png

实测发现windows会优先匹配先维护的变量,落实到图中,即是越靠前靠上的变量会越优先被匹配。
掌握了上述原理和技巧,我们后面安装和配置环境变量,乃至安装多环境,就可以得心应手了。

安装Java/JDK

先来个Java小试牛刀,我们安装JDK1.8来作为平常做公司项目的环境,同时安装JDK17JDK21作为自己尝鲜体验或练手项目的环境。文中以JDK17为例展示。

1. 下载解压/安装JDK包

这步不过多赘述,从官网下载安装包也好,解压包也好,将jdk包安装或解压到电脑上备用,安装包就一路点下一步或参考其他人教程,我自己习惯用解压包:

image.png

如图,我在C\Program Files目录下创建了一个Java目录,方便管理不同Java版本,在其内部又解压了Jdk1.8Jdk17的包。

配置环境变量

有了上面的基础,这步就很容易了,首先我们为不同版本JDK创建环境变量:

创建环境变量这里根据个人习惯选择是系统变量还是用户变量,类似于安装软件时经常让你选择是为所有人安装还是仅当前用户安装,笔者习惯创建全局的,即系统变量,但也有一个缺点,有时候会识别不出来,需要将运行程序以管理员运行,后面需要注意下。

image.png

回归正题,我们创建两个JDK变量

image.png image.png image.png

然后我们创建一个统一汇总他们的变量叫JAVA_HOME,先取JDK1.8的值:

image.png

变量都声明好了,接下来我们在Path中添加JAVA_HOME下的bin目录:

image.png

一路点击确定,Java的环境变量就维护好了,我们打开cmd试一下:

image.png

如果想切换到Java17,只需要把JAVA_HOME改成取变量JDK17的值就可以了。(改完后需要重新开一个控制台才能刷新)

image.png image.png

安装Maven

再来安装个Maven巩固一下。首先第一步也是下载安装或解压软件包:

1. 下载解压/安装Maven包

image.png

2.配置环境变量

Maven也是需要环境变量的,需要系统快速识别他的命令mvn,配置变量方式类似Java:

添加一个MAVEN_HOME变量:

image.png

Path中添加MAVEN_HOME下的bin目录:

image.png

一路确定,检验一下成果:

image.png

安装Python3 + Python2

上面只是小试牛刀,在Python开发中,经常会存在Python3和Python2都需要使用的场景。下面我们同时安装Python3和Python2,并使其同时生效。

下载安装包

从Python官网下载安装包到本地:

image.png

安装Python2

我们先点击安装Python2,理论上一路下一步就可以了,但是由于我们要安装双版本,这里我们统一下路径,都安装在统一的Python目录下:

image.png

安装的时候注意修改下安装路径。

image.png

Path这里我们检查下是否为❌,先不要让他创建,一会我们自己添加:

image.png

python2安装好了,它不自带pip包管理工具,需要我们手动安装下。注意我的版本是2.7.18,早期版本方式可能有所不同,可以参考其他博客。

以管理员身份打开一个控制台,进入刚才安装的目录,执行以下命令:

    .\python.exe -m ensurepip --default-pip

image.png

至此python2安装完成。

安装Python3

直接点开安装文件一路下一步就可以了,同样注意修改安装路径以及不要添加到Path即可:

image.png

安装完成后就算装完了,Python3自带pip,不需要我们再手动安装。

配置环境变量

接下来配置环境变量,首先为Python2和Python3各创建一个变量:

image.png

然后在Path中添加上这些Python安装目录本身,以及他们下级的Script目录:

image.png

如果你的开发以Python3为主,偶尔需要使用Python2,则将Python3变量置于靠前顺序,反之则将Python2变量上移。

添加完后,让我们再回顾下这些目录下都有哪些重要命令:

image.png image.png image.png image.png

如图可知,我们Python中常用的python.exepip.exe都被添加到了Path中,但是Python2和Python3下面都有这两个可执行文件,且名称相同,根据一开始讲到的环境变量加载顺序可知,顺序靠前的先执行,此时使用Python命令是以Python3为优先的:

image.png

如果想要使用Python命令时以Python2为基准,调整Path中变量的顺序即可。

复制Python.exe副本

环境变量配置完后,我们观察到Scipts下的pip.exe还存在pip2.exepip3.exe等副本,这意味着我们在使用时可以直接使用pip2pip3命令来区分pip的版本。

image.png

受此启发,我们直接将Python下的python.exepythonw.exe也复制一份出来,并改名添加对应python版本的版本号:

image.png

image.png

之后我们就可以使用python2python3pip2pip3这些命令来具体指定版本,当使用python,pip命令时,则是默认优先执行自己环境变量中配置顺序靠前的版本,实现了python2python3的共存。

image.png

安装Node.js(多版本)

前端开发中,不同项目Node的版本也不尽相同,我们同样需要在机器上安装不同版本的node(但是只生效一个),理论上按照上面Java思路配置也可以实现,不同的是对Node而言,windows平台上已经有一个不错的解决方案 —— nvm

github.com/coreybutler…

下载安装nvm后,只需要将不同版本的node解压到nvm安装目录下,并按版本号重命名一下,就可以比较方便的切换使用:

image.png

image.png

那么他的原理是什么呢?

观察环境变量发现,nvm安装后帮我们创建了两个环境变量:NVM_HOMENVM_SYMLINK,并将他们都添加到Path

image.png

image.png

NVM_HOME即是nvm的安装路径,不难看出添加到path就是为了其关键命令nvm能直接运行,而NVM_SYMLINK我们看到是指向nodejs目录,这个目录是在nvm安装过程中选定的,实际上我们并没有向这里存放或安装文件,那么这里是什么东西呢?

image.png

他是一个快捷方式!也就是说nvm将当前生效的node版本创建了个快捷方式在这里,以此实现一份环境变量来切换不同的版本的效果。属于是另一种思路,值得我们去参考借鉴。

以上就是本篇环境安装指南的全部内容,相信看完以后再有其他的类似的环境的安装不会再难倒你了, 文章如有错误和遗漏,欢迎在评论区指出。