我正在尝试使用来自http://algs4.cs.princeton.edu/code/的jar文件。我已经下载了jar文件,将其放入CLASSPATH中,但每次我尝试在命令行中运行我的程序时,都会收到消息“程序包不存在”。如何使用已更新的jar文件(使用命令行)
的JAR文件是algs4.jar
在它说:“自2015年8月17日,在‘默认包’algs4.jar的版本已被替换成一个‘命名包’版本的网站。要访问algs4.jar类,您将需要使用import语句像下面这样的:
import edu.princeton.cs.algs4.MinPQ;
import edu.princeton.cs.algs4.StdIn;
“ 我认为这是主要的问题,因为我真的不明白他们在说什么(这是我第一次使用jar文件)
代码(二进制搜索):
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
import edu.princeton.cs.algs4.In;
import java.util.Arrays;
public class BinarySearch
{
public static int rank(int key, int[] a)
{ // Array must be sorted.
int lo = 0;
int hi = a.length - 1;
while (lo <= hi)
{ // Key is in a[lo..hi] or not present.
int mid = lo + (hi - lo)/2;
if (key < a[mid]) hi = mid - 1;
else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
}
public static void main(String[] args)
{
int[] whitelist = In.readInts(args[0]);
Arrays.sort(whitelist);
while (!StdIn.isEmpty())
{ // Read key, print if not in whitelist.
int key = StdIn.readInt();
if (rank(key, whitelist) < 0)
StdOut.println(key);
}
}
}
编辑: 我使用的命令:的Javac -cp; edu.princeton.cs.algs4.jar BinarySearch.java
的jar文件是algs4。 jar not edu.princeton.cs.algs4.jar
jar文件是一个zip文件。打开它,看看你是否有这个包里面。请注意,过渡到新的包结构并不奇怪。如果你有一个没有这种结构的旧罐子,你需要下载更新的罐子。您还需要告诉我们您是如何尝试编译和运行代码的。 –
.jar文件本身是名为'algs4.jar'还是实际的文件名'edu.princeton.cs.algs4.jar'? – VGR
该jar文件被命名为algs4.jar 在该网站中,它表示“截至2015年8月17日,algs4.jar的”默认包“版本已被替换为”命名包“版本。 algs4.jar,你将需要使用如下的导入语句: – user3332929