[环境] Java 环境搭建
记录在 win 和 mac 下的 Java 开发环境搭建
Window 10
JDK
JRE(Java Runtime Enviroment) 是 Java 的运行环境。面向 Java 程序的使用者,而不是开发者。如果你仅下载并安装了 JRE,那么你的系统只能运行 Java 程序。JRE 是运行 Java 程序所必须环境的集合,包含 JVM 标准实现及 Java 核心类库。它包括 Java 虚拟机、Java 平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。
JDK(Java Development Kit) 又称 J2SDK(Java2 Software Development Kit),是 Java 开发工具包,它提供了 Java 的开发环境(提供了编译器 javac 等工具,用于将 java 文件编译为 class 文件)和运行环境(提 供了 JVM 和 Runtime 辅助包,用于解析 class 文件使其得到运行)。如果你下载并安装了 JDK,那么你不仅可以开发 Java 程序,也同时拥有了运行 Java 程序的平台。JDK 是整个 Java 的核心,包括了 Java 运行环境(JRE),一堆 Java 工具 tools.jar 和 Java 标准类库 (rt.jar)。
- 在 Oracel 官网 下载
image.png -
next...
安装 (jdk + jre)
image.png - 配置
环境变量
image.png- 新增
JAVA_HOME
:C:\Program Files\Java\jdk1.8.0_351
- 新增
CLASSPATH
:%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;.
(其他人%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;.
) - 编辑
PATH
新增%JAVA_HOME%\bin
项
- 新增
- 验证
开始 + r
打开运行
输入cmd
, 执行java
/javac
/java -version
查看
C:\Users\Admin>java -version
java version "1.8.0_351"
Java(TM) SE Runtime Environment (build 1.8.0_351-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)
Tomcat
直接在 Apache Tomcat 官网 下载 apache-tomcat-9.0.70.zip
, 将解压地址配置到 开发工具(Idea / eclipse) 就可以了
Maven
- 在 Apache Maven 官网 下载
apache-maven-3.8.6-bin.zip
- 解压
- 配置环境变量 (同JDK)
- 添加
M2_HOME
:D:\develop\apache-maven-3.8.6-bin\apache-maven-3.8.6
- 编辑
Path
添加%M2_HOME%\bin
项
- 添加
- cmd 验证
mvn –version
C:\Users\Admin>mvn -version
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: D:\develop\apache-maven-3.8.6-bin\apache-maven-3.8.6
Java version: 1.8.0_351, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_351\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
MySql
- 在 官网 下载
mysql-8.0.31-winx64.zip
image.png - 解压
- 配置 环境变量 (同 JDK)
- 编辑
Path
添加D:\develop\mysql-8.0.31-winx64\bin
- 编辑
- 配置
my.ini
(编码ANSI
) (在D:\develop\mysql-8.0.31-winx64
目录下)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\develop\\mysql-8.0.31-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\develop\\mysql-8.0.31-winx64\\data
# 允许最大连接数
max_connections=200
#运行连接失败的次数。这也是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
- 初始化, cmd 进入
D:\develop\mysql-8.0.31-winx64
目录执行mysqld --initialize --console
D:\develop\mysql-8.0.31-winx64>mysqld --initialize --console
mysqld: [ERROR] Found option without preceding group in config file D:\develop\mysql-8.0.31-winx64\my.ini at line 1.
mysqld: [ERROR] Fatal error in defaults handling. Program aborted! -------------- 注意是 ANSI 编码D:\develop\mysql-8.0.31-winx64>mysqld --initialize --console
2022-12-22T11:45:40.605948Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead.
2022-12-22T11:45:40.606009Z 0 [System] [MY-013169] [Server] D:\develop\mysql-8.0.31-winx64\bin\mysqld.exe (mysqld 8.0.31) initializing of server in progress as process 1924
2022-12-22T11:45:40.739915Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-12-22T11:45:47.787325Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-12-22T11:45:53.588991Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: lq,!v+9wzsjZD:\develop\mysql-8.0.31-winx64>
- 安装 MySQL服务
mysqld install [服务名]
D:\develop\mysql-8.0.31-winx64>mysqld install
Service successfully installed.
-
关闭自动启动
image.png -
手动启动 mysql
net start mysql
-
登录
mysql -u root -p
(默认密码在日志中lq,!v+9wzsjZ
) -
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';
遇到的问题
缺少 vcruntime140_1.dll
, 在 https://cn.dll-files.com/vcruntime140_1.dll.html 下载 vcruntime140_1.zip
, 将 vcruntime140_1.dll
放到 C:\Windows\System32
重试
客户端
DBeaver 分为 DBeaver PRO
和 DBeaver Community
, 我一直使用的免费的 DBeaver Community, 下载 dbeaver-ce-22.3.0-win32.win32.x86_64.zip
Mysql 驱动
在 MySql 官网 下载 jdbc 驱动 mysql-connector-java-8.0.28.zip
Mac
M1
芯片下载 arm
版本
JDK
- 在 Oracle 官网 下载
-
next...
安装 - 安装地址
/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk
- 配置文件
/etc/.bash_profile
(对所有用户生效)
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
PATH=$JAVA_HOME/bin:$PATH:.
export JAVA_HOME
export CLASSPATH
export PATH
-
source /etc/.bash_profile
使配置生效 - 验证
javac
java
java -version
Tomcat
- 在 Apache Tomcat 官网 下载
- 解压到
/usr/local/apache-tomcat-8.5.72
- 权限设置
sudo chmod 755 /usr/local/apache-tomcat-8.5.72/bin/*.sh
755
: 用户对该文件拥有读、写、执行的权限, 同组的其他人员拥有执行和读的权限, 没有写的权限, 其它用户的权限和同组人员一样.
Maven
- 在 Apache Maven 官网 下载
- 解压到
/usr/local/ApacheMaven3.8.3
- 配置文件
~/.bash_profile
(仅对当前用户生效)
export M="/usr/local/ApacheMaven3.8.3"
export PATH=${PATH}:${M}/bin
-
source ~/.bash_profile
使配置生效 - 验证
mvn -version
MySql
- 在 MySQL 官网 下载 MySQL Community Server
-
next ...
安装, 安装完成后提示默认密码,如果不小心点了OK
没有及时保存密码,可以打开通知查看 - 安装位置
/usr/local/mysql
- 编辑配置文件
sudo vim ~/.bash_profile
, 加入PATH=$PATH:/usr/local/mysql/bin
保存 - 执行
source ~/.bash_profile
使配置文件生效 - 验证
mysql --version
, 返回mysql Ver 8.0.27 for macos11 on x86_64 (MySQL Community Server - GPL)
- 启动MySQL 打开
系统偏好设置
-->MySql
-->Start MySQL Server
- 使用默认密码登录 MySQL
mysql -uroot -p
我的密码 5;,j;=wI1*/r
w
后面居然是I
,试了好多次(1
l
I
)#_#
- 修改密码
set password for 'root'@'localhost' = password('12345678');
异常处理
Connection failed!
Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 0x0002): tried: '/usr/local/lib/plugin/caching_sha2_password.so' (no such file)
在 mysql8 之前的版本使用的密码加密规则是 mysql_native_password
, 但是在mysql8则是 caching_sha2_password
- 创建新用户
CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password;
- 修改当前用户
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
- 使之生效
flush privileges;
sequelpro 客户端
免费开源的 sequelpro / sequelpro
DBeaver 客户端
在 DBeaver Community 下载 Community Edition 社区版 免费