起因
准备刷一次普林斯顿大学的《算法 4》,目前本人使用 Win10 + WSL2 + VSCode,对 Java 可以说基本不通。因此需要在 Win10+VSCode 配置整个 java 环境。当然自己重新开始,踩了不少坑。
安装 algs4
在《算法 4》的官网上看到这个,https://algs4.cs.princeton.edu/code/。
其实很简单,就是直接在官网上下载一个 algs4.exe,直接运行就可以了。这个文件会下载 JDK,配置需要的环境变量。整个文件执行过程如下:
####################################################################
# #
# d8888 888 .d8888b. .d8888b. d8888 #
# d88888 888 d88P Y88b d88P Y88b d8P888 #
# d88P888 888 888 888 Y88b. d8P 888 #
# d88P 888 888 888 "Y888b. d8P 888 #
# d88P 888 888 888 88888 "Y88b. d88 888 #
# d88P 888 888 888 888 "888 8888888888 #
# d8888888888 888 Y88b d88P Y88b d88P 888 #
# d88P 888 88888888 "Y8888P88 "Y8888P" 888 #
# #
####################################################################
# #
# Java Programming Environment Setup #
# for Microsoft Windows - v3.5 #
# Princeton University - Hayk Martirosyan #
# #
####################################################################
Initializing functions and beginning installation...
Creating installation directory at
C:\Users\Mathlab\algs4
Creating bin directory at
C:\Users\Mathlab\algs4\bin
Checking system architecture...
64-bit machine detected.
#### Step 1 - Java #################################################
Downloading Java from
http://algs4.cs.princeton.edu/windows/java64.zip
to
C:\Users\Mathlab\algs4\java.zip
Extracting zip archive in place at
C:\Users\Mathlab\algs4\java.zip
and deleting .zip file.
Setting the user PATH environment variable to include
C:\Users\Mathlab\algs4\java\bin
Downloading java-algs4.bat from
http://algs4.cs.princeton.edu/windows/java-algs4.bat
to
C:\Users\Mathlab\algs4\bin\java-algs4.bat
Downloading javac-algs4.bat from
http://algs4.cs.princeton.edu/windows/javac-algs4.bat
to
C:\Users\Mathlab\algs4\bin\javac-algs4.bat
Setting the user PATH environment variable to include
C:\Users\Mathlab\algs4\bin
#### Step 2 - Textbook Libraries ###################################
Downloading stdlib.jar from
http://introcs.cs.princeton.edu/java/stdlib/stdlib.jar
to
C:\Users\Mathlab\algs4\stdlib.jar
Downloading algs4.jar from
http://algs4.cs.princeton.edu/code/algs4.jar
to
C:\Users\Mathlab\algs4\algs4.jar
#### Step 3 - Checkstyle ###########################################
Downloading checkstyle from
http://algs4.cs.princeton.edu/windows/checkstyle.zip
to
C:\Users\Mathlab\algs4\checkstyle.zip
Extracting zip archive in place at
C:\Users\Mathlab\algs4\checkstyle.zip
and deleting .zip file.
Downloading checkstyle configuration file from
http://algs4.cs.princeton.edu/windows/checkstyle.xml
to
C:\Users\Mathlab\algs4\checkstyle-6.9\checkstyle.xml
Downloading checkstyle execution script from
http://algs4.cs.princeton.edu/windows/checkstyle-algs4.bat
to
C:\Users\Mathlab\algs4\bin\checkstyle-algs4.bat
Downloading checkstyle wrapper script from
http://algs4.cs.princeton.edu/windows/checkstyle-algs4.ps1
to
C:\Users\Mathlab\algs4\bin\checkstyle-algs4.ps1
Setting the user PATH environment variable to include
C:\Users\Mathlab\algs4\bin
#### Step 4 - Findbugs #############################################
Downloading findbugs from
http://algs4.cs.princeton.edu/windows/findbugs.zip
to
C:\Users\Mathlab\algs4\findbugs.zip
Extracting zip archive in place at
C:\Users\Mathlab\algs4\findbugs.zip
and deleting .zip file.
Downloading findbugs configuration file from
http://algs4.cs.princeton.edu/windows/findbugs.xml
to
C:\Users\Mathlab\algs4\findbugs-3.0.1\findbugs.xml
Downloading findbugs execution script from
http://algs4.cs.princeton.edu/windows/findbugs-algs4.bat
to
C:\Users\Mathlab\algs4\bin\findbugs-algs4.bat
Downloading findbugs wrapper script from
http://algs4.cs.princeton.edu/windows/findbugs-algs4.ps1
to
C:\Users\Mathlab\algs4\bin\findbugs-algs4.ps1
Setting the user PATH environment variable to include
C:\Users\Mathlab\algs4\bin
Adding findbugs to registry...
#### Step 6 - DrJava ###############################################
Downloading DrJava from
http://algs4.cs.princeton.edu/windows/drjava.jar
to
C:\Users\Mathlab\algs4\drjava.jar
Downloading DrJava configuration file from
http://algs4.cs.princeton.edu/windows/drjava-config.txt
to
C:\Users\Mathlab\.drjava
Replacing text in file
C:\Users\Mathlab\.drjava
from
INSTALL_DIR
to
C:\\Users\\Mathlab\\algs4
Creating a shortcut to DrJava from
C:\Users\Mathlab\algs4\DrJava.lnk
to
C:\Users\Mathlab\algs4\drjava.jar
Creating a shortcut to DrJava from
C:\Users\Mathlab\Desktop\DrJava.lnk
to
C:\Users\Mathlab\algs4\drjava.jar
#### Step 7 - Command Prompt #######################################
Editing registry to customize Command Prompt preferences...
Setting Quick Edit mode to on.
Setting Insert Mode to on.
Setting the Screen Buffer Size to 80 x 500.
Creating a shortcut to Command Prompt on the desktop from
C:\Users\Mathlab\Desktop\Command Prompt.lnk
to
C:\WINDOWS\system32\cmd.exe
#### Step 7 - Test it out! #########################################
Installation complete! Downloading test Java program...
Compiling test Java program...
警告: C:\Users\Mathlab\algs4\algs4.jar(edu/princeton/cs/algs4/StdDraw.class): 主版本 52 比 51 新, 此编译器支持最新的主版本。
建议升级此编译器。
1 个警告
Test program compiled. Running...
Exception in thread "main" java.lang.UnsupportedClassVersionError: edu/princeton/cs/algs4/StdDraw : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at TestAlgs4.main(TestAlgs4.java:15)
If you saw the bullseye and textbook graphic, the installation
was successful and you are ready to start programming in Java.
Continue with the introductory tutorial on the website.
NOTE: If there were any error messages during this setup, check the
troubleshooting section on the website or ask for help.
A log file of this installation is saved at
C:\Users\Mathlab\algs4\log.txt
You should now close this window...
上面的 log 可以看到,algs4.exe 完成以下几个部分工作:
1、下载 JAVA。对应的版本为 1.7.0_67。
2、配置环境变量。就是在 %Path% 中增加了对应的路径。注意 algs4.exe 是安装到 C:\Users\用户\algs4 这个路径,对应的 Java 也在这个路径下。
3、下载需要的 jar 文件。包括 algs4.jar、drjava.jar、stdlib.jar。
验证 Java 安装
打开一个 cmd 窗口。输入 java -version
C:\Users\Mathlab\algs4\java\bin>java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
验证 algs4 安装
打开一个 cmd 窗口。输入 java-algs4 edu.princeton.cs.algs4.StdOut
C:\Users\Mathlab\algs4>java-algs4 edu.princeton.cs.algs4.StdOut
Test
17
true
0.142857
升级 Java
由于 algs4 里面的 Java 版本为 1.7.0_67,版本有点低,最新的版本已经到 15.0.1,因此我决定升级 Java。
删除 Java 1.7
这个很简单,到 https://www.oracle.com/java/technologies/javase-downloads.html 下载最新版本的 JDK 就可以了。
安装好了,需要修改机器的用户变量。安装好 algs4 后的用户变量 Path 如下图:
绿色的需要保留,java-algs4.bat 这些文件是在该路径中。
红色的是定义 JAVA 环境。将这个变量删除,使用我们按照的最新 15.0.1。缺省的安装路径为 C:\Program Files\Java\jdk-15.0.1。
配置 Java 15.0
我的修改方法是在系统变量中增加一个 JAVA_HOME 变量,值为 C:\Program Files\Java\jdk-15.0.1\bin。如下图所示:
为了更方面使用,还可以吧 C:\Program Files\Java\jdk-15.0.1\bin 加入到 Path 中。如下图所示。
验证 Java 升级
打开一个 cmd 窗口。输入 java -version
C:\Users\Mathlab\algs4>java -version
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
到这里为止,对应的《算法4》的开发环境已经搭建完成。我们可以使用 java-algs4 来编译执行对应的 Java 代码。
下一步
官方推荐是使用 IntelliJ IDEA 来调试的。我想试试看看能否使用 VSCode 支持,因为不想安装太多的 IDE 工具。计划参考 VSCode 官网进行配置,https://code.visualstudio.com/docs/java/java-tutorial。