在Eclipse下配置算法(第四版)运行环境
第一步:配置Eclipse运行环境
Eclipse运行环境配置过程是很简单的,用过Eclipse进行java开发或学习的同学应该都很熟悉这个过程了。
配置过程:
(1)系统环境:Windows7 64位
(2)下载JDK和Eclipse安装包,JDK下载地址,Eclipse下载地址
(3)安装JDK和Eclipse
JDK安装过程很简单,一直下一步就可以了,安装路径可以根据自己喜好选择;Eclipse不需要安装,直接解压就可以用,最好是把eclipse.exe发送到桌面快捷方式,用的时候直接桌面双击就可以了
(4)设置环境变量
在桌面点击“计算机”,右键“属性”,“高级系统设置”,“环境变量”,可以新建或编辑系统环境变量
- JAVA_HOME= C:\Program Files\Java\jdk1.8.0_60(这里改成你自己安装的jdk的安装路径来)
- CLASSPATH= .;%JAVA_HOME%\bin;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 新建用户变量PATH=%JAVA_HOME%\bin;
- Path= %Java_Home%\bin;%Java_Home%\jre\bin;(注意这条要直接插到已有的Path的最前面不然在cmd中输入java会出错!)

(5)查看环境变量是否配置成功
配置完成后在命令行中输入Java -version查看jdk版本,输入javac测试环境变量是否配置成功。配置成功后如下图:

第二步:在Eclipse下配置算法(第四版)代码运行环境
(1)新建一个项目工程:Algorithms4th。
(2)在项目中导入algs4.jar和stdlib-package.jar(注意是stdlib-package.jar不是stdlib.jar此处是一个坑!)两个文件,这两个文件可在官网下载到
右键工程名Algorithms4th->Build Path->Configure Build Path->Libraries->Add External JARs,选择jar包所在路径并导入

到这一步,eclipse的环境配置已经完成,但是《算法》中的程序多数都是通过输入重定向来获得输入的,例如BinarySearch这个程序就是通过重定向输入文件:java BinarySearch tinyW.txt < tinyT.txt。但是Eclipse中不方便使用重定向,接下来告诉大家解决方法。
第三步:运行代码(并解决重定向问题)
二分查找测试用例:
(1)从官网下载algs4-data.zip文件,解压后放入项目文件夹下,该文件中包含有算法4的示例代码运行需要的测试数据,原书中是通过重定向的方式使用的,这里在Eclipse中也是可以使用的,解决方法如下。
(2)在eclipse中运行重定向输入的程序,以BinarySearch.java 为例。右键项目文件BinarySearch.Java->Run as->Run Configuration->Common

在Input File中选择输入文件(tinyT.txt)所在位置,然后选择Arguments,在Program arguments中输入参数文件tinyW.txt的地址,如下图所示
注意:我这里的两个文件已经事先放在了项目文件夹下,当然也可以填写文件的绝对路径

(3)运行结果

另外BinarySearch.java在Eclipse中运行的另一种解决方法是改写代码然后将代码带参数运行:
代码改写为:
public static void main(String[] args) {
int[] whitelist = In.readInts(args[0]);//参数1
Arrays.sort(whitelist);
int[] a2=In.readInts(args[1]);//参数2
for(int key:a2) {
if(rank(key,whitelist)==-1)
StdOut.println(key);
}
/*
//read key; print if not in whitelist
while(!StdIn.isEmpty())
{
int key = StdIn.readInt();
if(rank(key, whitelist) < 0)
StdOut.println(key);
}
*/
运行参数设置:

运行结果:

追加:算法4代码示例中的StdIn和StdOut的输入流和输出流问题
总结:
- 算法4中的In输入对应于Eclipse中Run Configuration的Arguments中的 program arguments。
- 算法4中的StdIn对应于Common的Standard Input and Output中的Input File,或者直接从控制台Console输入。
- 算法4中的Integer.parseInt(args[0])、Double.parseDouble(args[0)也是从program arguments中读取输入的。
二分查找算法测试用例:
public static void main(String[] args) {
int[] whitelist = In.readInts(args[0]);//参数1,从In输入
Arrays.sort(whitelist);
//read key; print if not in whitelist
while(!StdIn.isEmpty())
{ //读取键值,如果不存在与白名单中则将其打印
int key = StdIn.readInt(); //StdIn输入
//rank是二分查找算法实现
if(rank(key, whitelist) < 0)
StdOut.println(key);
}
P94 1.3.3.8 Stack的测试用例
需要从标准输入流读取一个字符串,用以进行对用链表构建的Stack数据结构的测试,标准输入是:
to be or not to - be - - that - - - is
public class P94StackTestClient{
public static void main(String[] args)
{ // Create a stack and push/pop strings as directed on StdIn.
Stack<String> s = new Stack<String>();
while (!StdIn.isEmpty())
{
String item = StdIn.readString(); //从StdIn输入
if (!item.equals("-"))
s.push(item);
else if (!s.isEmpty()) StdOut.print(s.pop() + " ");
}
StdOut.println("(" + s.size() + " left on stack)");
}
}
解决办法1:输入进txt文档,然后像第三步中那样降程序带参数运行然后在标准输入里添加文件,如下图所示:
(注意:一行后面一定要回车,这样才能表示一行结束,是真正的一行。否则无法成功读取。)

解决方法2:将程序直接运行然后在Console控制台中输入"to be or not to - be - - that - - - is",回车,按Ctrl+Z终止输入流,也能运行。

Run - Run Configurations - 右边 Arguments 里Program arguments中写。
如果写的是文件,默认该文件要放在项目的根目录里。当然也可以换位置,勾选Working directory的Other,然后选择文件目录即可。
Eclipse开启断言:
Run - Run Configurations - Arguments选项卡,在VM arguments里输入-ea代表开启断言,输入-da代表禁止断言。
至此在Eclipse下配置算法(第四版)的代码运行环境的过程就结束了,这个过程也是在参考了网上的众多教程和博客以及自己的实际实验过程之后总结的,欢迎大家参考。终于可以愉快地开始算法4的学习了。
2018-03-17 12:41:42
在Eclipse下配置算法(第四版)运行环境的更多相关文章
- 01 sublime text3下配置c/c++ 的编译运行环境
安装mingw,在线安装经常出问题,推荐离线安装 参考: https://blog.csdn.net/qq_34432960/article/details/106124496?utm_medium= ...
- ubuntu命令行下java工程编辑与算法(第四版)环境配置
ubuntu命令行下java工程编辑与算法(第四版)环境配置 java 命令行 javac java 在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是 ...
- 算法第四版 在Eclipse中调用Algs4库
首先下载Eclipse,我选择的是Eclipse IDE for Java Developers64位版本,下载下来之后解压缩到喜欢的位置然后双击Eclipse.exe启动 然后开始新建项目,File ...
- eclipse下配置安装ssm图文教程(web版)
eclipse下配置安装ssm图文教程(web版) 一.安装所需jar包 1.1 mybatis安装包 可以进入GitHub的https://github.com/mybatis/mybatis-3 ...
- 如何在Eclipse中配置Tomcat(免安装版)
如何在Eclipse中配置Tomcat(免安装版) 2013-10-09 23:19wgelgrsh | 分类:JAVA相关 | 浏览642次 分享到: 2013-10-10 17:10提问者采纳 ...
- 算法第四版jar包下载地址
算法第四版jar包下载地址:https://algs4.cs.princeton.edu/code/
- 算法第四版-文字版-下载地址-Robert Sedgewick
下载地址:https://download.csdn.net/download/moshenglv/10777447 算法第四版,文字版,可复制,方便copy代码 目录: 第1章 基 础 ...... ...
- (转)eclipse下配置tomcat7的几个重要问题,值得一看
转自:http://jingyan.baidu.com/article/ab69b270ccc4792ca7189fd6.html 这段时间开始接触的servlet,今天尝试在eclipse下配置to ...
- 二项分布。计算binomial(100,50,0.25)将会产生的递归调用次数(算法第四版1.1.27)
算法第四版35页问题1.1.27,估计用一下代码计算binomial(100,50,0.25)将会产生的递归调用次数: public static double binomial(int n,int ...
随机推荐
- 安装Vue Devtools
命令行进入vue-devtools\vue-devtools-master执行 cnpm install (貌似npm不太好使,也可能是我网络代理的原因) (淘宝镜像安装 npm install -- ...
- springMVC(二): @RequestBody @ResponseBody 注解实现分析
一.继承结构 @RequestBody.@ResponseBody的处理器:RequestResponseBodyMethodProcessor @ModelAttribute处理器: ModelAt ...
- 【Linux】测试环境如何搭建?
[Linux]测试环境如何搭建? (该文档所在我的百度网盘位置: ) 通常面试会问到会不会搭建测试环境?到底啥是测试环境搭建呢,其实测试环境没有想像的那么高大上,弄个 tomcat,把测试的 war ...
- 筛选BETWEEN '2018-1-1 00:00:00' AND '2018-5-18 00:00:00'每日`status`='1'的记录总条数
最近做了一个小任务,要求是:使用MySQL #筛选BETWEEN '2018-1-1 00:00:00' AND '2018-5-18 00:00:00'每日`status`='1'的记录总条数 SE ...
- AsyncStorage和Promise配合使用
代码: AsyncStorage封装 import {AsyncStorage} from "react-native"; class DeviceStorage { //保存数据 ...
- TCP、UDP和HTTP详解
http:是用于www浏览的一个协议.tcp:是机器之间建立连接用的到的一个协议. 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.在网络层有IP协议.ICMP协议.ARP协议.R ...
- vue中的路由高亮
- C 字符及ASCII值
.已知字母A的ASCII码为十进制的65,下面程序的输出是___A___. main() { char ch1,ch2; ch1='; ch2='; printf("%d,%c\n" ...
- Nginx Log日志统计分析常用命令
IP相关统计 统计IP访问量(独立ip访问数量) awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-5点) gr ...
- [Java in NetBeans] Lesson 17. File Input/Output.
这个课程的参考视频和图片来自youtube. 主要学到的知识点有: We want to handle the bad Error. (e.g bad input / bugs in program) ...