《算法》第四版 IDEA 运行环境的搭建
在搭建之初,我是想不到会出现如此之多的问题。我看了网上的大部分教程,都是基于Eclipse搭建的,还没有使用IDEA搭建的教程。我相信许多读者跟我一样,在学习Java的时候没有使用过命令行编译的形式去运行Java代码,直接使用Eclipse工具去进行开发的,因此,当看到书中
% java BinarySerach xxx.txt < xxx.txt
的时候,不免有点不知所措。笔者现在使用的IDE是IDEA,因此是想要在IDEA下搭建环境,好了废话不多说了,开始吧。
概述
环境的搭建分以下几个步骤:
- Java 运行环境的搭建
- IDEA 的安装与破解
- 《算法》 运行库的下载与配置
- IDEA 工程的创建以及在IDEA中使用命令行
前两个步骤就不写了,网上的教程一大把。
《算法》 运行库的下载与配置
- 首先,我们需要下载作者提供的运行库,下载地址: ,
我们需要下载两个内容,一个是库,一个是测试的数据。库是algs4.jar,数据是algs4-data.zip。
- 在C盘建立目录 C:\Program Files\algs4 将 algs4.jar 放入其中,如下所示:
ps:这里你可以放在任何你想要放的地方,笔者只是习惯放在C盘而已。
- 在CLASSPATH环境变量中,添加值 C:\Program Files\algs4\algs4.jar (就是刚刚存放algs4.jar的路径),如下所示:
网上说,要加个 分号 ,具体我也没去深究,就这样吧。
这样下来,就完成了库的配置了。还有一个测试数据的使用,在下一节。
IDEA 工程的创建以及在IDEA中使用命令
- 创建一个HelloWorld工程
选择你的JDK,我使用的是1.6。
- 为项目添加jar包
- 解压测试数据到src目录下:
- 编写测试代码(1.3 节里的代码)
package Test;public class FixedCapacityStackOfStrings { private String[] stack; private int N; FixedCapacityStackOfStrings(int cap){ stack = new String[cap]; } public String pop(){ return stack[--N]; } public boolean isEmpty(){ return N==0; } public int size(){ return N; } public void push(String s){ stack[N++] = s; }}
package Test;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class FixedCapacityStackOfStringTest { public static void main(String[] args){ FixedCapacityStackOfStrings s = new FixedCapacityStackOfStrings(100); while (!StdIn.isEmpty()){ String item = StdIn.readString(); if(!item.equals("-")){ s.push(item); }else if(!s.isEmpty()){ StdOut.print(s.pop() + " "); } } StdOut.println("("+s.size()+" left"+")"); }}
以上,就好了。