本文主要针对《算法》一书中第一章内容涉及的编程环境的配置。这是开始学习本书的先决条件。
第一次写blog,不周之处请见谅。
首先说明,在本书的官网https://algs4.cs.princeton.edu/home/中有一套集成的开发环境(包括jdk,drjava,作者自编的库以及数据文档)并且按说明安装好之后这些资源的配置也应该是完成好的,直接就可以步入学习,如果觉得自己配置环境麻烦可以尝试下载作者提供的环境。
本文主要介绍下载jdk,eclipse并自行配置环境的做法。
1>jdk的下载与环境变量配置
首先下载最新版本jdk,我选择的是java se64位系统版本。安装过程中有两次路径选择,第一次是jdk的位置,第二次是jre的位置,最好放在系统盘(网上有一种说法是:“”不要把二者放到同一文件夹下,因为在java9之前这么做似乎会导致jdklib下的tools.jar与dt.jar被覆盖,影响之后的环境变量配置”,但是我下载的时候已经是java10版本,dt和
tools已经移除,环境变量中的CLASSPATH也不必配置与之有关的变量,因此可忽略网上的说法)
下载好后,如图:
文件夹内的情况:
之后是环境变量的配置,java10版本时用户已经不必配置CLASSPATH项下的变量,只需配置JAVA_HOME和PATH。
首先进入win10下环境变量设置的窗口(网上有关介绍很多),然后可以看到有用户变量与系统变量两种,由于现在电脑基本都只有一个用户,所以直接设置系统变量
变量名:JAVA_HOME 值:(选择之前下载的jdk文件)
变量名:PATH 值:选择jdk文件下的bin和jre文件下的bin
另外注意,win10系统中好像不支持JAVA_HOME代替绝对路径作为其他环境变量的一部分,所以在设置PATH变量时不要用带有JAVA_HOME的,要用绝对路径。类似这样:(而网上一些教程没有这样,有一定的误导性)
这样就配置完成了,可以在命令行中分别输入 javac、java、java -version 若都没有错误信息提示,那么目前为止的步骤应该都正确完成了。
更详细的资料可以参考:http://www.runoob.com/java/java-environment-setup.html
关于环境变量的介绍可以参考:https://blog.csdn.net/wf131410000/article/details/72618752
2>下载并配置书官网提供的algs4.jar文件
它包含了书中代码使用的各种自定义类。
重点!!!:由于程序中使用到了作者自己编写的类,所以在eclipse下运行时需要先导入algs4.jar,并且书中代码也要做一些改动才能正常运行,稍后详细介绍。
第一步,在官网下载algs4.jar,随便放一个地方,我还是放在了C盘下。
第二步,需要设置CLASSPATH环境变量
(简单介绍一下CLASSPATH:程序在编译或运行时,碰到一个别的包的类,这时系统就要去找有关这个类的说明,但是去哪找呢?CLASSPATH就起到了这个作用,系统会遍历CLASSPATH下的路径直到找到,若未找到则会提示错误信息)
因此 CLASSPATH内要包含 当前目录(处在同一个包下的类)和algs4.jar(外部导入的类)
如图
其中不同的路径用分号分开,.表示当前路径,故为.;C:algs4algs4.jar; 也可以展开即为
3>下载eclipse
这个从官网直接下就行了。
4>用命令行编译运行程序
首先要对书中代码做一些改动,去掉开头的package一行改为自己的包名,并且在后面用import添加上用到的类,保存。如图(只有前六行有改动)
打开cmd,首先进入.java文件位置,然后javac 类名.java编译,java .包名.类名 运行
此处特别容易发生CLASSNOTFOUND找不到主类的错误,
解决方法参考,讲的非常清楚:https://blog.csdn.net/suwenlai/article/details/79854744
这是我运行书中BinarySearch的情况:(注意要提前把tinyW.txt和tinyT.txt放在src文件夹下)
(补充:这是我的文件结构)
说明:eclipse-workspace是我的eclipse设定的工作区,1 是项目名,c1是包名,BinarySearch是类名。
5>用eclipse中的命令行运行

在弹出的窗口中选择在Classpath中添加外部jar,然后选择algs4.jar文件

