2016-03-02 77 views
1

我是Java編程語言的新成員,我想通過導入包來使用庫。任何人都可以告訴我如何使用文本編輯器導入Java包? 我在github中找到了這個庫,我想用我的java代碼來使用它們的包,我正在使用導入進行開發。我試圖通過使用import在代碼上調用這些包,但在編譯器中有一個錯誤,指出:找不到包。如何在java中導入包

import com.tiemens.secretshare.main.cli.*; 
import com.tiemens.secretshare.main.cli.*; 

import java.io.*; 
import java.math.BigInteger; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.util.ArrayList; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

import static java.lang.Integer.min; 
import static java.util.Arrays.copyOfRange; 


public class Shamir { 

    //The encoding that will be used when splitting and combining files. 
    static String encoding = "ISO-8859-1"; 
    //The number of bytes per piece (except maybe the last one)! 
    static int pieceSize = 128; 

    //Mode 0 for strings, 1 for ints. 
    public static ArrayList<String> shamirSplit(String inputString, int numPieces, int minPieces, int mode) { 

     String type = "-sS"; 
     if (mode == 1) { 
      type = "-sN"; 
     } 

     ArrayList<String> parts = new ArrayList<>(); 
     String[] splitArgs = {"-n", Integer.toString(numPieces), "-k", Integer.toString(minPieces), type, inputString, "-primeNone"}; 
     MainSplit.SplitInput splitInput = MainSplit.SplitInput.parse(splitArgs); 
     MainSplit.SplitOutput splitOutput = splitInput.output(); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     PrintStream ps = new PrintStream(baos); 
     splitOutput.print(ps); 
     String content = baos.toString(); // e.g. ISO-8859-1 
     BufferedReader reader = new BufferedReader(new StringReader(content)); 
     String line; 
     int i = 0; 
     try { 
      while ((line = reader.readLine()) != null && i < numPieces) { 
       if (line.startsWith("Share (x")) { 
        i++; 
        parts.add(line.trim()); 
       } 
      } 
     } catch (Exception e) 

所以我的課,我想實現是沙米爾類,但我需要進口com.tiemens.secretshare.main.cli *。

誰能告訴我如何使我的沙米爾類這個包的工作?

+1

您需要外部庫添加到您的項目文件夾中的構建路徑。 – basic

回答

0

如果我沒有記錯的話,當時我做的你做了什麼:

import com.tiemens.secretshare.main.cli.*; 
public class Foo { 

} 

,然後嘗試使用javac Foo.java編譯,我得到:

Error:(2, 1) java: package com.tiemens.secretshare.main.cli does not exist 

這意味着,當編譯器javac試圖編譯類(Shamir.java)它需要在源文件或在包com.tiemens.secretshare.main.cli類的字節碼(類文件)。既然你好像都沒有,編譯失敗了。

因此,你需要的是包含他們要對編譯的類的jar文件。有兩種方法可以實現:

  1. 使用Maven。但這意味着你需要學習Maven。那就是生活。使用mvn repo進行編譯。
  2. 如果你認爲它是太多的工作來學習Maven的時候,你將需要建立secretshare code on GitHub yourself。這意味着你需要學習gradle。再次,那就是生活。

太糟糕了,您無法下載JAR文件作爲此項目的「發佈下載」。

3

我你不使用maven猜測。下載JAR文件包要導入,並把然後在您的構建路徑

0

下載JAR給您的圖書館,包括它在你的項目的classpath。然後你可以在你的課堂上輸入它。 有關設置classpath中使用這種link

+0

您提供的鏈接無效。你可以再次發佈鏈接嗎?感謝您的評論 –

+0

更新了鏈接。基本上鍊接是關於如何在eclipse中配置classpath。您可以使用鏈接或搜索任何鏈接來配置類路徑。 –