如何在java中导入包

时间:2016-03-02 18:16:07

标签: java

我是Java编程语言的新手,我想通过导入他们的包来使用库。任何人都可以告诉我如何使用文本编辑器导入Java包? 我在github中找到了这个库,我想使用他们的包来编写我正在使用import开发的java代码。我试图通过使用import在我的代码上调用这些包,但在编译器中有一个错误,指出:找不到包。

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) 

所以我要实现的类是Shamir类,但我需要导入com.tiemens.secretshare.main.cli。*;

有谁能告诉我如何使这个包适用于我的Shamir课程?

3 个答案:

答案 0 :(得分:3)

我猜你不是在使用maven。下载要导入的包的jar文件,然后将其放入构建路径

答案 1 :(得分: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)时,它需要包中的类的源文件或字节码(类文件){{1} }。由于您似乎没有,编译失败。

因此,您需要包含要编译的类的jar文件。有两种方法可以实现这一目标:

  1. 使用Maven。但这意味着你需要学习Maven。这就是生活。使用mvn repo进行编译。
  2. 如果您认为学习Maven的工作量过大,则需要构建secretshare code on GitHub yourself。这意味着您需要学习gradle。再一次,这就是生活。
  3. 太糟糕了,您无法将JAR文件下载为此项目的“发布下载”。

答案 2 :(得分:0)

下载库的jar并将其包含在项目类路径中。然后你可以在你的班级中导入它。 要设置类路径,请使用此link