【问题标题】:Base64 cannot be resolved (Java 1.7)Base64 无法解析 (Java 1.7)
【发布时间】:2019-07-23 17:02:02
【问题描述】:

我有以下 sn-p 并且我有一些未解决的类 - 主要是 Base64

String auth = username + ":" + password; 
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.ISO_8859_1));
String authHeader = "Basic " + new String(encodedAuth);
request.setHeader(HttpHeaders.AUTHORIZATION, authHeader);

我尝试导入 commons-codec maven 存储库,但在 Eclipse 中仍然显示无法解析类:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.12</version>
</dependency>

我们现在使用 JDK7 有点卡住了,这可能是问题所在。这个 Base64 类是否仅适用于 Java 8?否则,如何将其导入到我的应用程序中?

【问题讨论】:

  • 标准 java.util.Base64 类仅在 java 8+ 中可用。您看不到来自commons-codec 的原因不是您的Java 版本。请检查您的项目配置
  • 根据commons.apache.org/proper/commons-codec 这个版本的commons-codec 需要Java 1.7 所以应该没问题(?)
  • 您的代码似乎使用commons-codec 1.12 编译。你有正确的进口吗? import org.apache.commons.codec.binary.Base64;
  • 就是这样,我手动写了导入语句,它解决了。奇怪的是,公共编解码器没有显示在 Eclipse 弹出窗口中。我目前只是在测试环境中运行,所以我可能需要留意该库是否正在被导入。无论如何,感谢您发布正确的包裹。

标签: java apache-commons-codec


【解决方案1】:

如果您检查 Javadoc,它清楚地表明 Base64Since 1.8

https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html

不确定commons-codec 的情况,你一定是在 Eclipse 中出了点问题(考虑到它的 Maven 集成是多么糟糕,这并不奇怪)。

【讨论】:

  • 是的,但这表明 Base64 包含在 Java 1.8 中,对吗?那么 JDK 中没有 8 之前的版本如何导入 Base64 编解码器呢? Mavan 似乎也很好,我只有这个 repo 有问题。根据commons.apache.org/proper/commons-codec,它需要java 1.7,所以应该可以(?)
  • 是的,commons-codec 应该可以工作。不知道为什么它没有显示在您的 Eclipse IDE 上。在我的 IntelliJ 上,它会立即加载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
相关资源
最近更新 更多