Windows 开发环境配置 + 软件配置。
一、环境配置
Windows 的环境变量配置比较简单,它是以键值对(key-value)的方式配置的。
在 Windows 系统中,有两种变量:用户变量和系统变量。
用户变量:只有当前登录用户能可以使用的变量,类似于 Linux 系统中用户目录下的
.bashrc
文件;系统变量:对所有用户生效、所有用户可以使用的变量,类似于 Linux 系统中的
/etc/profile
文件;
本文都以配置 系统变量 为例,但是配置方式不限,配置的 value
路径要替换自己本机的安装路径。Windows 配置变量一般有两种方式:
- 直接在 Path 里编辑添加软件的执行文件所在的目录(一般是软件的 bin 目录)。
- 新建一个变量,设置变量名称(一般随便起,部分有约定,比如
JAVA_HOME
,很多需要 java 环境的软件默认查询JAVA_HOME
变量名)和路径(安装软件的根目录)的 key-value,然后在 Path 中引用%key%
。
本文使用命令行测试时,工具可以是 PowerShell(PS)、cmd、Git Bash(推荐)、cmder 等。为了防止出错,最好使用 管理员身份 运行这些工具。
1. JDK
第一个配置附带了截图,后面的就不带了 😉,只是帮助理解一下上面的第二种配置说明。第一种是比较简单的,直接把软件执行程序路径添加在 Path 中。
key | value |
---|---|
JAVA_HOME | D:\software\java |
CLASSPATH | .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
Path 配置 %JAVA_HOME%\bin
命令行测试:java -version
Tip: jdk1.5 以后 CLASSPATH 可以不用再进行设置;
{% image /images/doc/变量设置1.png %} {% image /images/doc/变量设置2.png %}
2. Maven
Maven 官网下载特别慢,甚至打不开,可以在 https://archive.apache.org/dist/maven/maven-3/ 下载。
key | value |
---|---|
M2_HOME | D:\develop\software\maven-3.9.9 |
Path: %M2_HOME%\bin
命令行测试:mvn -version
1<mirror>
2 <id>aliyunmaven</id>
3 <mirrorOf>*</mirrorOf>
4 <name>阿里云公共仓库</name>
5 <url>https://maven.aliyun.com/repository/public</url>
6</mirror>
- 腾讯 maven 镜像源
- 阿里 maven 镜像源
- 阿里云提供的镜像搜索:https://developer.aliyun.com/mvn/search
3. Gradle
Gradle 推荐使用最新版的 IDEA(2023.3.x+),能够使得本地的 Gradle 的作用发挥出来。否则还是推荐配置 GRADLE_USER_HOME
环境变量来定义 Gradle 下载依赖和不同版本的路径,避免使用默认 C 盘的目录。
下载 或者 https://mirrors.aliyun.com/gradle/ 后解压。配置环境变量:
key | value |
---|---|
GRADLE_HOME | D:\develop\software\gradle-8.8 |
PATH: %GRADLE_HOME%\bin
命令行测试:gradle -V
1allprojects {
2 repositories {
3 maven("https://maven.aliyun.com/repository/public")
4 mavenCentral()
5 }
6}
- gradle 下载源查找顺序
1# 排列顺序即加载顺序 * 代表可以为任意名称
2~/.gradle/init.gradle
3~/.gradle/init.d/*.gradle
4GRADLE_HOME/init.d/*.gradle
5GRADLE_USER_HOME/init.gradle
6GRADLE_USER_HOME/init.d/*.gradle
7
8# Gradle 查找依赖的顺序
9# M2_HOME 是 Maven 的配置
10~/.m2/settings.xml
11M2_HOME/conf/settings.xml
12~/.m2/repository
GRADLE_HOME
环境变量是配置的本地安装的 Gradle 软件目录。 若不配置GRADLE_USER_HOME
,默认位置为 ~/.gradle。
4. MySQL8
使用安装文件(exe 或者 msi)安装一般没有什么问题,安装过程中会提示将安装路径加入环境变量。
这里只介绍使用 {% mark 压缩包 color:green %} 的方式。
key | value |
---|---|
MYSQL_HOME | D:\software\MySQL8.0.36 |
Path: %MYSQL_HOME%\bin
命令行运行以下命令完成初始化:
1# service-name 自己命名,如果不写默认为 mysql,只安装一个版本使用的话可以不指定
2# 在安装多个不同版本 MySQL 的时候很有用
3mysqld --install [service-name]
4# 移除 MySQL 服务
5mysqld --remove [service-name]
6
7# 下面的命令二选一:分别是 无密码版 和 带密码版
8# 使用不安全的初始化(即不生成初始密码)
9mysqld --initialize-insecure --console
10# 如果需要生成初始化密码,则使用以下命令。--console 选项把生成的密码打印到控制台(需要查看密码保存便于第一次登录)
11mysqld --initialize --console
12
13# 启动 MySQL 服务
14net start [service-name]
15
16# 开启远程访问
17# 进入 MySQL bash
18mysql -u root -p
19use mysql;
20update user set host = '%' where user = 'root' and host='localhost';
21grant all privileges on *.* to 'root'@'%' with grant option;
22# 刷新缓存
23FLUSH PRIVILEGES;
TIP:安装多个不同 MySQL 版本的时候,需要先 新建/编辑
my.ini
文件先修改端口号再初始化(即生成 data 目录),避免端口冲突。
忘记密码
如果忘记了 root 用户的密码,尝试使用以下方式:
修改 MySQL /etc/my.cnf
配置文件:
1...
2[mysqld]
3skip-grant-tables
4...
进入 MySQL bash:
1mysql -uroot
2
3UPDATE mysql.user SET authentication_string=null WHERE user='root';
4FLUSH PRIVILEGES;
5exit;
然后再次进入 MySQL 终端:
1mysql -u root
2
3ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
修改完成后打开 /etc/my.cnf
文件移除 skip-grant-tables
配置,尝试使用新密码登录。
5. MariaDB
key | value |
---|---|
MARIA_HOME | D:\software\mariadb-11.0.2 |
Path: %MARIA_HOME%\bin
命令行运行以下命令完成初始化:
1# 名称自己起
2mysqld.exe --install [service-name]
3# 初始化数据库,生成 data 文件夹以及配置信息
4mysql_install_db
5# 启动
6net start [service-name](上面安装时起的名称)
配置文件(如果本机安装之前还有 MySQL 数据库,推荐解压后先修改配置文件,更改默认端口):
1[mysqld]
2; 文件目录
3datadir=D:/software/mariadb-11.0.2/data
4port = 3333
5; 字符集设置
6character-set-server = utf8mb4
7collation-server = utf8mb4_general_ci
8skip-character-set-client-handshake
9
10[client]
11plugin-dir=D:/software/mariadb-11.0.2/lib/plugin
12; 客户端连接端口
13port=3333
14
15[mariadb]
16feedback=off
17; 指定端口
18port = 3333
19; 默认创建数据库的类型
20default-storage-engine = InnoDB
21; 最大连接数
22max_connections = 100
23; 慢查询
24slow_query_log_file = slow.log
25slow_query_log = 0
26log_queries_not_using_indexes = 1
27long_query_time = 0.5
28min_examined_row_limit = 100
- 如果本机已经安装了 MySQL 数据库,那么使用这种方式安装需要在初始化数据库后,先修改
my.ini
文件,修改端口号避免端口占用导致启动失败,然后启动服务。- FEEDBACK 启动成功但是连接失败官方说明:https://mariadb.com/kb/en/feedback-plugin/
- 官方配置文档:https://mariadb.com/kb/en/configuring-mariadb-with-option-files/
- Unicode 排序规则:https://www.monolune.com/articles/mysql-utf8-charsets-and-collations-explained/
6. PostgreSQL
Path:D:\software\pgsql\bin
命令行运行以下命令完成初始化(先创建 data 目录):
1# 初始化 initdb --help 查看帮助信息
2# -D data 指定初始化的数据库目录(此处为当前目录的data文件夹)
3# -E utf8 数据库编码格式
4# -U postgres 超级管理员名称
5# -A 使用密码授权
6initdb.exe -D "D:\software\develop\pgsql\data" -E UTF8 -U postgres -W
7# 注册服务 -N 指定服务名称
8pg_ctl register -N "postgresql" -D "D:\software\develop\pgsql\data"
9
10# 启动
11pg_ctl -D "D:\software\develop\pgsql\data" -l logfile start
- 推荐连接使用 Dbeaver、Dbgate 等开源数据库管理工具;
- pgsql 的配置文件在 data 文件夹中
postgres.conf
。
7. Tomcat
Tomcat 有安装版和压缩包两种,如果是安装版,需要先配置好jdk。
key | value |
---|---|
CATALINA_HOME | D:\software\tomcat8.5 |
Path:%CATALINA_HOME%\bin
。
- Tomcat启动的日志输出的默认字符集编码是 utf-8,但是 window 的 shell 是 gbk 编码,所以如果想要在 window 下正常输出,就要修改 Tomcat 的日志打印编码。
- 编辑tomcat安装路径下的
conf/logging.properties
文件,设置java.util.logging.ConsoleHandler.encoding = GBK
,保存重启即可。
8. NodeJs
Windows 中安装的 nodejs.msi
中自带了 npm
,而 Linux 需要单独安装(使用包管理器的时候)。另外,Windows 中安装后需要修改安装目录的权限,不然只有管理员才能操作该目录,对于当前用户是非常不方便的。
在安装目录即 nodejs
文件夹,单击右键,选择属性,点击 “安全” 标签,选择 “User” 用户,点击编辑,把权限都勾上,保存退出。
命令行做一些配置:
1# 配置镜像源
2npm config set registry https://registry.npmmirror.com
3# 设置全局安装目录(需要先手动创建)
4npm config set prefix "D:\software\develop\nodejs\node_global"
5# 设置全局缓存目录(需要先手动创建)
6npm config set cache "D:\software\develop\nodejs\node_cache"
7# 查看修改是否成功
8npm config list
Path:D:\software\develop\nodejs\node_global
- 配置 Path 是为了使用 全局安装 的工具(例如 yarn、pnpm 等)。
- 临时使用阿里镜像源:
npm install --registry=https://registry.npmmirror.com
。
9. Jetty
{% link https://www.eclipse.org/jetty/documentation/jetty-11/operations-guide/index.html 官方文档 %}
下载后解压,之后进入 jetty 的安装目录。运行以下命令($JETTY_HOME
是安装目录):
1# 为当前基目录添加标准文件及文件夹
2java -jar $JETTY_HOME/start.jar --add-to-startd=http,deploy
3# 创建demo演示,不然启动后是404页面
4java -jar $JETTY_HOME/start.jar --add-module=demo
5# 启动jetty服务
6java -jar $JETTY_HOME/start.jar
7
8# 如果不想用8080,可以使用以下命令在启动时动态修改
9# 也可以修改配置文件,使其永久生效
10java -jar $JETTY_HOME/start.jar jetty.http.port=9999
之后就可以在浏览器使用 localhost:9999
进行访问了。
10. Rust
创建 ~/.cargo/config.toml
文件,编辑填写以下内容,保存。
1[source.crates-io]
2replace-with = 'ustc'
3
4[source.ustc]
5registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
6
7# [source.crates-io]
8# replace-with = 'mirror'
9
10[source.bfsu]
11registry = "sparse+https://mirrors.bfsu.edu.cn/crates.io-index/"
- Rust 的很多源只负责更新索引,实际下载 crates 的时候还是很慢,实测使用 中科大 的镜像源无论是更新索引还是下载 crates 都很快。
- 如果正在使用的 Rust 版本低于 1.38,则需要修改的文件为 config 文件,而不是 config.toml 文件。
11. Python
1# 设置镜像源
2python -m pip install -i https://mirrors.bfsu.edu.cn/pypi/web/simple --upgrade pip
3pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple
12. Go
Go 的安装包/依赖都是在 Github 上,国内比较慢,最好设置代理。代理配置 :
1$ go env -w GO111MODULE=on
2$ go env -w GOPROXY=https://goproxy.cn,direct
3
4# goctl
5go install github.com/zeromicro/go-zero/tools/goctl@latest
二、软件
1. VsCode
自 VsCode 1.7x 版本之后 exe 安装文件也可以选择安装路径了,并且国内下载速度也很快,但是插件默认依然在 C 盘中,当然你可以打一个软连接映射,或者使用便携版本来自定义插件的安装位置。
2. Vivaldi
Vivaldi 官网在国内是访问不到的,可以在 hosts
文件中添加以下内容再次访问:
1172.67.21.227 vivaldi.com www.vivialdi.com update.vivaldi.com downloads.vivaldi.com help.vivaldi.com bifrost.vivaldi.com mimir.vivaldi.com
三、插件
插件在精不在多。
1. 油猴插件
- 网盘有效性检查
- 网盘直链下载助手 (需要关注公众号,目前好用的不多了)
- Github 增强 - 高速下载
- CSDN、知乎、简书浏览体验优化脚本
2. Edge
3. Firefox/Zen
- 可可翻译
- TWP
- Ads
- Aria2 Download Manager Integration 配合 motrix 或其它支持 rpc 的下载工具使用
4. IDEA Community
- Lombok
- Log Support 2
- Translation
- Quick Request
- Cool Request(和 Quick Request 二选一即可)
- HttpRequest
- Jimmer Buddy
- JimmerDTO
四、其它
1. 命令操作
目标 | 操作 |
---|---|
控制面板 | win + r 输入 appwiz.cpl 回车 |
系统变量 | win + r 输入 sysdm.cpl 回车 |
磁盘管理 | win + r 输入 diskmgmt.msc 回车 |
服务 | win + r 输入 services.msc 回车 |
电脑信息 | win + r 输入 winver 回车 |
win + 数字键 | 快速切换对应位置的窗口 |
2、删除开机多余启动项
{% kbd Win %} + {% kbd R %},输入 msconfig
,点击确定,选择 “引导” 标签,选择 非当前OS 记录,点击删除并应用,按照提示重启即可。
管理员身份命令行运行:
1# 查看启动项
2efibootmgr
3# 删除对应的项
4efibootmgr -b 0001(序号) -B
3. PowerShell 运行脚本报错
管理员身份命令行运行
1# 输入以下命令,选择 Y
2set-executionpolicy RemoteSigned
PS 有四种策略:
策略 | 说明 |
---|---|
Restricted | 禁止运行任何脚本配置文件(默认) |
AllSigned | 可以运行发布签名的脚本和配置文件,包括本地计算机上编写的脚本 |
RemoteSigned | 要求从网络上下载的脚本和配置文件由可信者发布签名,不要求本地计算机上编写的脚本进行签名 |
Unrestricted | 可以运行未签名的脚本 |
4. Vmware 虚拟机配置双网卡
使用 VMWare 时,推荐创建的虚拟机配置双网卡,默认的使用 NAT 模式,新添加一个使用 仅主机 模式,然后进行修改配置。这样就算以后连接无数个无线网,电脑依然能上网,但是使用 SSH 远程连接时依然不用修改 Linux 的网络配置文件。实现了一次配置,永久使用的效果。配置也很简单:
在 VMWare 里创建一个虚拟机后,打开改虚拟机的设置,硬件下方的”添加“,然后在弹出的列表里选择”网络适配器“,之后点击新添加的网络适配器,选择”仅主机“。接着打开网络适配器修改 VMWare Network Adapter VMnet1 的 IP 为简单的地址,Linux 里的网络配置文件的 IP 地址不要和这个一样,因为 VM1 是本机和 Linux 虚拟机通信的 IP 地址,不能一样,推荐 VM1 10.0.0.1,Linux 配置为 10.0.0.2,简单好记。
注意: 如果是新建的虚拟机,在安装之前按照以上方法配置,安装后查看网络配置文件时或许会有两个不同的文件,比如:ens33,ens34。如果是之前已经安装过的单网卡想要配置双网卡,可以把已经存在网络配置文件复制一份,修改文件里面的内容即可。如果新建的虚拟机也是只有一个配置文件,也可以直接复制原有的文件进行修改。
另外,第一次安装后网络服务是正常的,之后换了一个无线网连接就出现了问题,可能是因为 NetworkManager 的问题,可以关闭此服务。然后重启网络。内网相通,但使用 xshell 等终端工具连不上虚拟机也连不上外网也可以尝试使用这个方法。
1# 关闭服务
2systemctl stop NetworkManager
3# 禁止开机启动
4systemctl disable NetworkManager
5# chkconfig NetworkManager off
6
7# 重启网络
8systemctl restart network
{% link https://blog.csdn.net/weistin/article/details/80676955 参考文章地址 %}
Vmware 下载地址:https://softwareupdate.vmware.com/cds/vmw-desktop/ws/
其它问题
使用 VMWare 虚拟机时,如果本机开启着 VPN 时,使用其它远程工具是无法连接到本地虚拟机的,必须退出 VPN 的登录后才可以再次连接新的会话。
Windows 7 开发工具兼容性
工具名称 | 兼容版本 | 相关链接 |
---|---|---|
jetbrains IDEA | 23.1.7 | |
vscode | 1.70.2 | |
listary | 5.x | |
git | 2.46.2 | https://gitforwindows.org/32-bit.html |
dbeaver | 24.0.4、25.1.1 | https://github.com/dbeaver/dbeaver/issues/34315 https://github.com/dbeaver/dbeaver/issues/34197 https://github.com/orgs/dbeaver/discussions/18956 |
redis客户端 | Another-Redis-Desktop-Manager-win-1.7.1 | |
redis客户端 | RedisDesktopManager2022.5.0.0(需要 net4.5 环境) | |
gitea | 1.21.1 | https://github.com/go-gitea/gitea/issues/29586 |
peazip | 10.4.0~ | |
pixin | 2.0.0.3~ | |
winscp | 6.5.1~ | |
cmder | 1.3.25~ | https://github.com/cmderdev/cmder/releases/tag/v1.3.25 |
rime | 0.14.3 | |
手心输入法 | 3.2.3.1000~ | |
Notepad4_zh-Hans_x64_v | 25.06r56968~ | |
MacTypeInstaller | 2025.6.9~ | |
minio | 2025.4.22 |
带
~
后缀的表示可以自行尝试本文声明版本之后的新版本(未验证)
评论