Windows 开发环境配置

Windows 开发环境配置 + 软件配置。

一、环境配置

Windows 的环境变量配置比较简单,它是以键值对(key-value)的方式配置的。

在 Windows 系统中,有两种变量:用户变量和系统变量。

本文都以配置 系统变量 为例,但是配置方式不限,配置的 value 路径要替换自己本机的安装路径。Windows 配置变量一般有两种方式:

  1. 直接在 Path 里编辑添加软件的执行文件所在的目录(一般是软件的 bin 目录)。
  2. 新建一个变量,设置变量名称(一般随便起,部分有约定,比如 JAVA_HOME,很多需要 java 环境的软件默认查询 JAVA_HOME 变量名)和路径(安装软件的根目录)的 key-value,然后在 Path 中引用 %key%

本文使用命令行测试时,工具可以是 PowerShell(PS)、cmd、Git Bash(推荐)、cmder 等。为了防止出错,最好使用 管理员身份 运行这些工具。

1. JDK

第一个配置附带了截图,后面的就不带了 😉,只是帮助理解一下上面的第二种配置说明。第一种是比较简单的,直接把软件执行程序路径添加在 Path 中。

keyvalue
JAVA_HOMED:\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/ 下载。

keyvalue
M2_HOMED:\develop\software\maven-3.9.9

Path: %M2_HOME%\bin

命令行测试:mvn -version

XML
1<mirror>
2    <id>aliyunmaven</id>
3    <mirrorOf>*</mirrorOf>
4    <name>阿里云公共仓库</name>
5    <url>https://maven.aliyun.com/repository/public</url>
6</mirror>
点击展开查看更多

3. Gradle

Gradle 推荐使用最新版的 IDEA(2023.3.x+),能够使得本地的 Gradle 的作用发挥出来。否则还是推荐配置 GRADLE_USER_HOME 环境变量来定义 Gradle 下载依赖和不同版本的路径,避免使用默认 C 盘的目录。

下载 或者 https://mirrors.aliyun.com/gradle/ 后解压。配置环境变量:

keyvalue
GRADLE_HOMED:\develop\software\gradle-8.8

PATH: %GRADLE_HOME%\bin

命令行测试:gradle -V

KOTLIN
1allprojects {
2    repositories {
3        maven("https://maven.aliyun.com/repository/public")
4        mavenCentral()
5    }
6}
点击展开查看更多
BASH
 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 %} 的方式。

keyvalue
MYSQL_HOMED:\software\MySQL8.0.36

Path: %MYSQL_HOME%\bin

命令行运行以下命令完成初始化:

BASH
 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 配置文件:

BASH
1...
2[mysqld]
3skip-grant-tables
4...
点击展开查看更多

进入 MySQL bash:

BASH
1mysql -uroot
2
3UPDATE mysql.user SET authentication_string=null WHERE user='root';
4FLUSH PRIVILEGES;
5exit;
点击展开查看更多

然后再次进入 MySQL 终端:

BASH
1mysql -u root
2
3ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
点击展开查看更多

修改完成后打开 /etc/my.cnf 文件移除 skip-grant-tables 配置,尝试使用新密码登录。

5. MariaDB

keyvalue
MARIA_HOMED:\software\mariadb-11.0.2

Path: %MARIA_HOME%\bin

命令行运行以下命令完成初始化:

BASH
1# 名称自己起
2mysqld.exe --install [service-name]
3# 初始化数据库,生成 data 文件夹以及配置信息
4mysql_install_db
5# 启动
6net start [service-name](上面安装时起的名称)
点击展开查看更多

配置文件(如果本机安装之前还有 MySQL 数据库,推荐解压后先修改配置文件,更改默认端口):

INI
 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 目录):

BASH
 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。

keyvalue
CATALINA_HOMED:\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” 用户,点击编辑,把权限都勾上,保存退出。

命令行做一些配置:

BASH
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 是安装目录):

SHELL
 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 文件,编辑填写以下内容,保存。

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

BASH
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 上,国内比较慢,最好设置代理。代理配置

BASH
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 文件中添加以下内容再次访问:

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. 油猴插件

  1. 网盘有效性检查
  2. 网盘直链下载助手 (需要关注公众号,目前好用的不多了)
  3. Github 增强 - 高速下载
  4. CSDN、知乎、简书浏览体验优化脚本

2. Edge

  1. 可可翻译
  2. JSON Beautifier & Editor
  3. AdGuard
  4. Tampermonkey BETA

3. Firefox/Zen

  1. 可可翻译
  2. TWP
  3. Ads
  4. Aria2 Download Manager Integration 配合 motrix 或其它支持 rpc 的下载工具使用

4. IDEA Community

四、其它

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 记录,点击删除并应用,按照提示重启即可。

管理员身份命令行运行:

BASH
1# 查看启动项
2efibootmgr
3# 删除对应的项
4efibootmgr -b 0001(序号) -B
点击展开查看更多

3. PowerShell 运行脚本报错

管理员身份命令行运行

SHELL
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 等终端工具连不上虚拟机也连不上外网也可以尝试使用这个方法。

BASH
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 IDEA23.1.7
vscode1.70.2
listary5.x
git2.46.2https://gitforwindows.org/32-bit.html
dbeaver24.0.4、25.1.1https://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 环境)
gitea1.21.1https://github.com/go-gitea/gitea/issues/29586
peazip10.4.0~
pixin2.0.0.3~
winscp6.5.1~
cmder1.3.25~https://github.com/cmderdev/cmder/releases/tag/v1.3.25
rime0.14.3
手心输入法3.2.3.1000~
Notepad4_zh-Hans_x64_v25.06r56968~
MacTypeInstaller2025.6.9~
minio2025.4.22

~ 后缀的表示可以自行尝试本文声明版本之后的新版本(未验证)

版权声明

作者: 浮生一梦

链接: /posts/2023/06/windows/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键