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

一、环境配置

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

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

  • 用户变量:只有当前登录用户能可以使用的变量,类似于 Linux 系统中用户目录下的 .bashrc 文件;

  • 系统变量:对所有用户生效、所有用户可以使用的变量,类似于 Linux 系统中的 /etc/profile 文件;

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

  1. 直接在 Path 里编辑添加软件的执行文件所在的目录(一般是软件的 bin 目录)。
  2. 新建一个变量,设置变量名称(一般随便起,部分有约定,比如 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 可以不用再进行设置;

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

配置 kuku 大佬的 镜像源

.../maven-3.9.9/conf/setting.xml
1
2
3
4
5
6
<mirror>
<id>nexus-kuku</id>
<mirrorOf>*</mirrorOf>
<name>Nexus kuku</name>
<url>https://nexus.kuku.me/repository/maven-public/</url>
</mirror>

3. Gradle

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

下载 后解压。配置环境变量:

key value
GRADLE_HOME D:\develop\software\gradle-8.8

PATH: %GRADLE_HOME%\bin

命令行测试:gradle -V

配置下载源,以下脚本来自 B 站霍老师的视频,且仅在 Gradle Version > 6.8 时可用:

.../gradle-8.8/init.d/init.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
fun RepositoryHandler.enableMirror() {
all {
if (this is MavenArtifactRepository) {
val originUrl = this.url.toString().removeSuffix("/")
urlMappings[originUrl]?.let {
logger.lifecycle("Repository[$url] is mirrored to $it")
this.setUrl(it)
}
}
}
}

val urlMappings = mapOf(
"https://repo.maven.apache.org/maven2" to "https://mirrors.cloud.tencent.com/nexus/repository/maven-public/",
"https://dl.google.com/dl/android/maven2" to "https://mirrors.cloud.tencent.com/nexus/repository/maven-public/",
"https://plugins.gradle.org/m2" to "https://mirrors.cloud.tencent.com/nexus/repository/gradle-plugins/"
)

gradle.allprojects {
buildscript {
repositories.enableMirror()
}
repositories.enableMirror()
}

gradle.beforeSettings {
pluginManagement.repositories.enableMirror()
dependencyResolutionManagement.repositories.enableMirror()
}
  • gradle 下载源查找顺序
1
2
3
4
5
6
7
8
9
10
11
12
# 排列顺序即加载顺序 * 代表可以为任意名称
~/.gradle/init.gradle
~/.gradle/init.d/*.gradle
GRADLE_HOME/init.d/*.gradle
GRADLE_USER_HOME/init.gradle
GRADLE_USER_HOME/init.d/*.gradle

# Gradle 查找依赖的顺序
# M2_HOME 是 Maven 的配置
~/.m2/settings.xml
M2_HOME/conf/settings.xml
~/.m2/repository

GRADLE_HOME 环境变量是配置的本地安装的 Gradle 软件目录。
若不配置 GRADLE_USER_HOME,默认位置为 ~/.gradle

4. MySQL8

使用安装文件(exe 或者 msi)安装一般没有什么问题,安装过程中会提示将安装路径加入环境变量。

这里只介绍使用 压缩包 的方式。

key value
MYSQL_HOME D:\software\MySQL8.0.36

Path: %MYSQL_HOME%\bin

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# service-name 自己命名,如果不写默认为 mysql,只安装一个版本使用的话可以不指定
# 在安装多个不同版本 MySQL 的时候很有用
mysqld --install [service-name]
# 移除 MySQL 服务
mysqld --remove [service-name]

# 下面的命令二选一:分别是 无密码版 和 带密码版
# 使用不安全的初始化(即不生成初始密码)
mysqld --initialize-insecure --console
# 如果需要生成初始化密码,则使用以下命令。--console 选项把生成的密码打印到控制台(需要查看密码保存便于第一次登录)
mysqld --initialize --console

# 启动 MySQL 服务
net start [service-name]

# 开启远程访问
# 进入 MySQL bash
mysql -u root -p
use mysql;
update user set host = '%' where user = 'root' and host='localhost';
grant all privileges on *.* to 'root'@'%' with grant option;
# 刷新缓存
FLUSH PRIVILEGES;

TIP:安装多个不同 MySQL 版本的时候,需要先 新建/编辑 my.ini 文件先修改端口号再初始化(即生成 data 目录),避免端口冲突。

忘记密码

如果忘记了 root 用户的密码,尝试使用以下方式:

修改 MySQL /etc/my.cnf 配置文件:

1
2
3
4
...
[mysqld]
skip-grant-tables
...

进入 MySQL bash:

1
2
3
4
5
mysql -uroot

UPDATE mysql.user SET authentication_string=null WHERE user='root';
FLUSH PRIVILEGES;
exit;

然后再次进入 MySQL 终端:

1
2
3
mysql -u root

ALTER 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

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

D:\software\mariadb-11.0.2\bin
1
2
3
4
5
6
# 名称自己起
mysqld.exe --install [service-name]
# 初始化数据库,生成 data 文件夹以及配置信息
mysql_install_db
# 启动
net start [service-name](上面安装时起的名称)

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

.../mariadb-11.0.2/data/my.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[mysqld]
; 文件目录
datadir=D:/software/mariadb-11.0.2/data
port = 3333
; 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
skip-character-set-client-handshake

[client]
plugin-dir=D:/software/mariadb-11.0.2/lib/plugin
; 客户端连接端口
port=3333

[mariadb]
feedback=off
; 指定端口
port = 3333
; 默认创建数据库的类型
default-storage-engine = InnoDB
; 最大连接数
max_connections = 100
; 慢查询
slow_query_log_file = slow.log
slow_query_log = 0
log_queries_not_using_indexes = 1
long_query_time = 0.5
min_examined_row_limit = 100

6. PostgreSQL

Path:D:\software\pgsql\bin

命令行运行以下命令完成初始化(先创建 data 目录):

D:\software\pgsql\bin
1
2
3
4
5
6
7
8
9
10
11
# 初始化 initdb --help 查看帮助信息
# -D data 指定初始化的数据库目录(此处为当前目录的data文件夹)
# -E utf8 数据库编码格式
# -U postgres 超级管理员名称
# -A 使用密码授权
initdb.exe -D "D:\software\develop\pgsql\data" -E UTF8 -U postgres -W
# 注册服务 -N 指定服务名称
pg_ctl register -N "postgresql" -D "D:\software\develop\pgsql\data"

# 启动
pg_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
2
3
4
5
6
7
8
# 配置镜像源
npm config set registry https://registry.npmmirror.com
# 设置全局安装目录(需要先手动创建)
npm config set prefix "D:\software\develop\nodejs\node_global"
# 设置全局缓存目录(需要先手动创建)
npm config set cache "D:\software\develop\nodejs\node_cache"
# 查看修改是否成功
npm config list

Path:D:\software\develop\nodejs\node_global

  • 配置 Path 是为了使用 全局安装 的工具(例如 yarn、pnpm 等)。
  • 临时使用阿里镜像源:npm install --registry=https://registry.npmmirror.com

9. Jetty

下载后解压,之后进入 jetty 的安装目录。运行以下命令($JETTY_HOME 是安装目录):

1
2
3
4
5
6
7
8
9
10
# 为当前基目录添加标准文件及文件夹
java -jar $JETTY_HOME/start.jar --add-to-startd=http,deploy
# 创建demo演示,不然启动后是404页面
java -jar $JETTY_HOME/start.jar --add-module=demo
# 启动jetty服务
java -jar $JETTY_HOME/start.jar

# 如果不想用8080,可以使用以下命令在启动时动态修改
# 也可以修改配置文件,使其永久生效
java -jar $JETTY_HOME/start.jar jetty.http.port=9999

之后就可以在浏览器使用 localhost:9999 进行访问了。

10. Rust

创建 ~/.cargo/config.toml 文件,编辑填写以下内容,保存。

~/.cargo/config.toml
1
2
3
4
5
6
7
8
9
10
11
[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"

# [source.crates-io]
# replace-with = 'mirror'

[source.bfsu]
registry = "sparse+https://mirrors.bfsu.edu.cn/crates.io-index/"
  • Rust 的很多源只负责更新索引,实际下载 crates 的时候还是很慢,实测使用 中科大 的镜像源无论是更新索引还是下载 crates 都很快。
  • 如果正在使用的 Rust 版本低于 1.38,则需要修改的文件为 config 文件,而不是 config.toml 文件。

11. Python

1
2
3
# 设置镜像源
python -m pip install -i https://mirrors.bfsu.edu.cn/pypi/web/simple --upgrade pip
pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple

12. Go

Go 的安装包/依赖都是在 Github 上,国内比较慢,最好设置代理。代理配置

1
2
3
4
5
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

# goctl
go install github.com/zeromicro/go-zero/tools/goctl@latest

二、软件

1. VsCode

自 VsCode 1.7x 版本之后 exe 安装文件也可以选择安装路径了,并且国内下载速度也很快,但是插件默认依然在 C 盘中,当然你可以打一个软连接映射,或者使用便携版本来自定义插件的安装位置。

2. Vivaldi

Vivaldi 官网在国内是访问不到的,可以在 hosts 文件中添加以下内容再次访问:

C:\Windows\System32\drivers\etc\hosts
1
172.67.21.227 vivaldi.com www.vivialdi.com update.vivaldi.com downloads.vivaldi.com help.vivaldi.com bifrost.vivaldi.com mimir.vivaldi.com

3. IDEA

1
2
3
4
5
6
7
8
9
10
11
12
[DNS]
EQUAL,jetbrains.com
EQUAL,plugin.obroom.com

[URL]
PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action
PREFIX,https://account.jetbrains.com.cn/lservice/rpc/validateKey.action


-javaagent:D:\software\develop\Java\jetbra\ja-netfilter.jar=jetbrains
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED

三、插件

插件在精不在多。

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 的下载工具使用

四、其它

1. 命令操作

目标 操作
控制面板 win + r 输入 appwiz.cpl 回车
系统变量 win + r 输入 sysdm.cpl 回车
磁盘管理 win + r 输入 diskmgmt.msc 回车
服务 win + r 输入 services.msc 回车
电脑信息 win + r 输入 winver 回车
win + 数字键 快速切换对应位置的窗口

2、删除开机多余启动项

Win + R,输入 `msconfig`,点击确定,选择 “引导” 标签,选择 **非当前OS** 记录,点击删除并应用,按照提示重启即可。

管理员身份命令行运行:

1
2
3
4
# 查看启动项
efibootmgr
# 删除对应的项
efibootmgr -b 0001(序号) -B

3. PowerShell 运行脚本报错

管理员身份命令行运行

1
2
# 输入以下命令,选择 Y
set-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
2
3
4
5
6
7
8
# 关闭服务
systemctl stop NetworkManager
# 禁止开机启动
systemctl disable NetworkManager
# chkconfig NetworkManager off

# 重启网络
systemctl restart network

Vmware 下载地址:https://softwareupdate.vmware.com/cds/vmw-desktop/ws/

其它问题

使用 VMWare 虚拟机时,如果本机开启着 VPN 时,使用其它远程工具是无法连接到本地虚拟机的,必须退出 VPN 的登录后才可以再次连接新的会话。


本站由 江湖浪子 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。