【问题标题】:How to import packages in java [duplicate]如何在java中导入包[重复]
【发布时间】:2016-03-06 03:13:22
【问题描述】:

我是 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 课程?

【问题讨论】:

  • 您需要将外部库添加到构建路径中的项目文件夹中。

标签: java


【解决方案1】:

我猜你没有使用 Maven。下载要导入的包的 jar 文件,然后放入构建路径中

【讨论】:

    【解决方案2】:

    如果我没记错的话,当我做你做的事情时:

    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】:

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

      【讨论】:

      • 您提供的链接无效。请问能再发一下链接吗。感谢您的评论
      • 更新了链接。基本上该链接是关于如何在 Eclipse 中配置类路径。您可以使用该链接或搜索任何链接来配置类路径。
      猜你喜欢
      • 1970-01-01
      • 2021-01-27
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多