在linux中搭建alg4的java环境
-
安装jdk
sudo apt install openjdk-8-jdk
如果没有自动补全, 就安装一下
sudo apt install bash-competion
-
安装alg4的bash命令行的bin文件
curl不知道为什么报错, 建议直接wget
~> cd /usr/local /usr/local/> sudo wget "https://lift.cs.princeton.edu/java/linux/lift-cli.zip" /usr/local/> sudo unzip lift-cli.zip /usr/local/> sudo rm lift-cli.zip
-
执行class里面的main
$ java-algs4 edu.princeton.cs.algs4.BinarySearch tinyAllowlist.txt < tinyText.txt
- java-algs4 包含了algs.jar这个库
- edu.princeton.cs.algs4.BinarySearch 某一个class的路径
- tinyAllowlist.txt 参数
- < tinyText.txt 重定向StdIn
-
安装文本编辑器
curl https://getmic.ro | bash sudo mv micro /usr/bin #放在系统bin目录,好处是可以在任何位置调用
-
编译用了std标准库
$ javac-introcs BinarySearch.java $ java-introcs BinarySearch tinyAllowlist.txt < tinyText.txt
可以用java-algs4, class名可以重复
std标准库包含了StdIN和StdOut
import edu.princeton.cs.algs4.*;
是按需引入,优先级最低,如果有重名的,那么用户的优先级高如果指定
import edu.princeton.cs.algs4.BinarySearch;
那么自己的类也叫BinarySearch编译会失败
网页版java库接口
https://algs4.cs.princeton.edu/code/javadoc/
跑GraphClient
首先新建GraphClient.java,内容复制官网给的,因为以来Graph,所以添加import,而Graph又依赖StdIn等,所以用*号都import
import edu.princeton.cs.algs4.*;
编译要用javac-algs4,不然找不到edu.princeton.cs.algs4这个库
javac-algs4 GraphClient.java
运行,直接用java-algs4,而且不用带上.java后缀,后面参数tinyG.txt
java-algs4 GraphClient tinyG.txt
图论网页教程
https://algs4.cs.princeton.edu/41graph/