MacOS

使用Homebrew安装JDK

  • 配置Homebrew
1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

安装OpenJDK

查询jdk版本信息

1
brew search jdk

安装特定版本

1
brew install openjdk@17

配置JDK

注意,运行完以上命令后,终端会出现如下的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

openjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.

If you need to have openjdk@17 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@17 you may need to set:
export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
==> Summary
🍺 /opt/homebrew/Cellar/openjdk@17/17.0.14: 636 files, 304.3MB
==> Running `brew cleanup openjdk@17`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

根据指示,运行相应的命令。首先运行如下命令使得系统可以找到当前下载的JDK:

1
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

可以通过tree命令来检查是否成功。

  • 若没有安装过tree,则运行以下命令:
1
brew install tree

检查是否成功

1
tree /Library/Java

检查当前JDK以及Java环境

执行以下命令可以查看当前系统使用的JDK版本

1
/usr/libexec/java_home

执行以下命令可查看当前系统使用的Java版本

1
java --version

多版本JDK管理

先要查找到JDK的地址,采用如下的命令:

1
/usr/libexec/java_home -V

若没有建过.bash_profile文件,则在根目录下建此配置文件,并打开此配置文件。如已经有,则添加即可。其中地址均使用上面命令查找出来的地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#配置JDK路径
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

# 设置默认JDK版本,默认使用 JDK17
export JAVA_HOME=$JAVA_17_HOME
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

# 配置alias命令动态切换JDK版本
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk17="export JAVA_HOME=$JAVA_17_HOME"

export JAVA_HOME
export CLASSPATH

若嫌麻烦可以跳过查看地址那一步,直接在上述.bash_profile中编辑:

1
2
3
4
5
6
export JAVA_HOME=$(/usr/libexec/java_home -v11)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'

保存配置文件,在终端中输出如下命令:

1
source .bash_profile

可以通过如下命令查看是否配置成功:

1
echo $JAVA_HOME

JDK版本切换

在终端中输入命令:jdk/java版本号 即可,如

1
jdk17

1
java17

注意看清楚编辑时alias后面的命令到底是jdk还是java

Windows

下载并安装JDK

官网下载所需的JDK,运行相应的安装程序即可完成安装。若从未注册过账号,需要在官网注册账号后才能下载。

配置环境变量

将以上的JDK目录,在系统变量中,配置为JAVA_HOME,路径为JDK路径,如:C:\Program Files\Java\jdk1.8.0_191。

然后,在Path中添加两个路径,分别为

  • %JAVA_HOME%\bin

  • %JAVA_HOME%\jre\bin

此外,还需要配置CLASSPATH变量。若本来存在这个变量,则进行编辑,若无则新建。变量值为

1
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

可以通过以下命令来检查是否安装成功:

1
java

Java运行

最方便和最简单的当然是直接拿IDEA一键运行啦,当然稍微麻烦点的就是配置VSCode。但如果除去这两个,就需要依靠运行脚本来运行Java程序了。

下面将展示脚本编写示例。

Windows脚本

在当前工程目录下,创建run.bat脚本文件(文件名是什么随便起就行,不一定要为run.bat)。假设我们的工程目录是如下的情况,我们可以在脚本文件中对应编辑如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
JavaDemo
├── .idea
├── bin
│   └── production
│   └── JavaDemo
│   └── hust
│    └── cs
│   └── javacourse
│   └── ch1
│   └── HelloWorld.class
├── src
│   └── hust.cs.javacourse.ch1
│   └── HelloWorld.java
└── JavaDemo.iml
1
2
3
4
5
6
set JAVA_HOME=D:\jdk1.8.0_231_64bit
set PROJECT_HOME=D:\IdeaWorkspace\JavaDemo
set path=%path%;%JAVA_HOME%\bin
set classpath=%classpath%;%PROJECT_HOME%\bin\production\JavaDemo

java -classpath %classpath% hust.cs.javacourse.ch1.HelloWorld

其中:

  • JAVA_HOME设置JAVA_HOME环境变量

  • PROJECT_HOME设置PROJECT_HOME环境变量

  • path设置把JAVA_HOME目录的子目录bin加到环境变量PATH

  • classpath把PROJECT_HOME目录的子目录bin\production\JavaDemo加到环境变量CLASSPATH,这个目录是类HelloWorld所属包的顶级目录

  • 最后一行为运行指令,启动类时,用类的完全限定名(带包名限定),并且带-classspath选项

运行时直接命令行输入:

1
./run.bat

参考资料:

  1. Mac JDK环境变量配置 及 JDK多版本切换

  2. 新 Mac 如何优雅地配置 Java 开发环境