2016-03-02 236 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。您可以使用链接或搜索任何链接来配置类路径。 –