2016-12-03 78 views
0

我正在尝试使用来自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

+0

jar文件是一个zip文件。打开它,看看你是否有这个包里面。请注意,过渡到新的包结构并不奇怪。如果你有一个没有这种结构的旧罐子,你需要下载更新的罐子。您还需要告诉我们您是如何尝试编译和运行代码的。 –

+0

.jar文件本身是名为'algs4.jar'还是实际的文件名'edu.princeton.cs.algs4.jar'? – VGR

+0

该jar文件被命名为algs4.jar 在该网站中,它表示“截至2015年8月17日,algs4.jar的”默认包“版本已被替换为”命名包“版本。 algs4.jar,你将需要使用如下的导入语句: – user3332929

回答

0

将jar文件放到项目的文件夹中,如果您使用的是Eclipse,那么在Package explorer中找到jar文件,右键> build path> add to建立路径。之后,您将能够像使用其他eclipse项目一样使用导入语句并进行正常编译。然而,从终端/命令行编译会有点棘手。

在这种情况下,编译这个的最好方法是在eclipse中生成一个ANT构建文件。你可以谷歌生成ANT构建文件和如何使用ANT进行编译。