algs4的官方给出环境搭建步骤较多,在github找了一下,看到了aistrate的repo,发现用这个非常方便。
[toc] 

1. 材料与环境准备

1.1 代码与数据准备

mkdir ~/algs4
wget http://algs4.cs.princeton.edu/code/algs4-data.zip
unzip algs4-data.zip
git clone https://github.com/aistrate/AlgorithmsSedgewick.git
在clone下来的文件夹中有需要的源码,同时还有stdlib.jar与algs4.jar两个Package,是对一些static method的封转,这两个文件需要添加到classpath中。

1.2 安装openjdk

sudo apt-get install openjdk-7-jdk

2. 编译与运行环境

2.1  使用命令行

Compile:
javac -classpath .:/PATH/TO/algs4.jar:/PATH/TO/algs4/stdlib.jar BinarySearch.java

Run:
java -classpath .:/PATH/TO/algs4.jar:/PATH/TO/algs4/stdlib.jar BinarySearch tinyW < tinyT.txt

关于各种选项,可以直接man java/javac查看。

2.2 使用Intellij IDEA

2.2.1  导入

第一步是导入原有的Eclipse工程,即包含有.project文件的文件夹。参考官方说明文档:Importing Eclipse Projects into IntelliJ IDEA
导入完成后,algs4.jar与stdlib.jar还没有被加入到classpath中,可以如下添加:
File --> Project Structure...
然后在Dependencies标签中添加:

2.2.2 验证

对某个文件编译后直接运行即可:

2.3 使用Eclipse

2.3.1 安装问题

用sudo apt-get install 方法安装eclipse启动后,有可能出现Could not load SWT library错误而无法启动,解决方法:
X86_64:
cp /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64

X86 :

cp /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86

2.3.2 导入工程与配置依赖

File --> Import... 然后在general 中选择Existing Projects into workspace:

导入jar文件:
在工程属性设置中的Java Build Path,即ClassPath中添加即可。

3. 重定向问题

对于直接使用命令行来运行程序,重定向没有任何问题,就如同前面的命令一样:
java -classpath .:/PATH/TO/algs4.jar:/PATH/TO/algs4/stdlib.jar BinarySearch tinyW < tinyT.txt
但是,在Eclipse与Intellij idea中却没有好的方法解决此问题。在Idea中可以使用其编译命令更改成运行命令的方法来运行程序和指定input,output redirect。
在编译了某个java文件后,run窗口中有如下的命令log:

点击红框中的命令后,就会显示完整的编译命令,然后将其拷贝到Terminal中修改运行即可。

如果文章有格式问题,请移步:http://www.hexiongjun.com/?p=88

转载请注明出处。作者:TonyHo hexiongjun.com

Algorithm 4th environment setup相关推荐

  1. 汇编 - 环境设置(Environment Setup)

    本地环境设置 (Local Environment Setup) 汇编语言取决于指令集和处理器的体系结构. 在本教程中,我们将重点介绍Pentium等Intel-32处理器. 要学习本教程,您需要 - ...

  2. java的environment_Java - 环境设置(Environment Setup)

    Java - 环境设置(Environment Setup) 在本章中,我们将讨论为Java建立适宜环境的不同方面. 本地环境设置 (Local Environment Setup) 如果您仍然愿意为 ...

  3. angular2 step by step #1 - environment setup

    Very general steps for new angualr2 developers: install node.js\npm check version node -v (7.2.0) np ...

  4. Sales Volume Analysis PoC app test - environment setup finished

    Created by Wang, Jerry, last modified on Jun 10, 2016 We've build up the test environment, now there ...

  5. C++拾取——使用stl标准库实现排序算法及评测

    今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...

  6. flask url构建_如何为生产构建构建Flask-RESTPlus Web服务

    flask url构建 by Greg Obinna 由格雷格·奥比纳(Greg Obinna) 如何为生产构建构建Flask-RESTPlus Web服务 (How to structure a F ...

  7. kohana分析之主程序加载流程

    本文是要切入kohana的内部,分析其启动过程: 1.index.php 单一入口主文件,基本上是设置模块路径,全局变量等.如错误信息,系统模块路径,网站目录等. 其他工作转给 require SYS ...

  8. Machine Learning课程 by Andrew Ng

    大名鼎鼎的机器学习大牛Andrew Ng的Machine Learning课程,在此mark一下: 一:Coursera: https://www.coursera.org/learn/machine ...

  9. STL堆算法性能分析与优化方法(GCC4.4.2 stl_heap.h源代码分析与改进方案)

    堆是常用的数据结构,经常用于实现优先队列中,huffman编码中的就用到了优先队列. 本质上就是用数组实现的完全二叉树保证父节点的关键码都大于或者等于其子节点的关键码(最大堆,反过来是最小堆),下图是 ...

最新文章

  1. Java --循环截取字符串
  2. sqlite3数据库使用
  3. ArcEngine中使用上下左右键移动地图
  4. CSS选择器优先级排列
  5. 机器学习之随机森林模型
  6. 【整数规划算法】分支定界法及其Python代码实现
  7. Spring Cloud 系列之 Netflix Eureka 注册中心(一)
  8. java获取iso周_java实现iso的周数计算
  9. AtCoder Beginner Contest 175 A Rainy Season 字符串+5种情况
  10. 微信小程序:凑单满减计算神器
  11. Appium 自动化测试 滑动 Swipe 详解
  12. 从财报看爱奇艺增长想象 长视频巨头要说“10分钟”新故事
  13. 遇见MySQL 主从原理及问题的小tips
  14. python inputs[:,::2,::2,:]
  15. php抖音小程序登录后端代码
  16. linux 文件擦除,linux文件系统如何使用emmc的擦除功能(Erase Trim Discard Sanitize)达到最优performance...
  17. Alpha、Beta、RC、GA、RTW版本
  18. c++/MFC CSocket仿QQ聊天软件,实现1对1聊天,群聊
  19. 19吉大计算机学院软件学院人工智能学院考研初试复试真题
  20. python批量裁剪图片_Python 图片批量裁剪

热门文章

  1. 信息系统项目管理师 - 信息系统项目管理基础
  2. 基于java+ssm+mysql的高校后勤管理系统
  3. 智能照明控制系统助力某商业综合体实现“双碳”
  4. 【Linux】必备故障及原因50个
  5. JavaScript继承练习
  6. DSP28335的SPWM波生成方法
  7. u盘为什么被写保护?u盘数据写保护如何恢复
  8. 摘:一张废手机卡的作用
  9. 穷人家的孩子真的没戏了吗?道翰天琼认知智能机器人api接口平台为您解密-1!
  10. 显卡发展史浅谈 显卡历史大全