【问题标题】:How to properly configure a missing symbol in Java import statement?如何正确配置 Java 导入语句中缺少的符号?
【发布时间】:2016-06-27 00:39:40
【问题描述】:

我最近收到了这个错误:

chan@TakShing:~/Desktop/Java$ javac test.java
test.java:16: error: cannot find symbol
String encoded = Base64.encodeBase64String( user_pass.getBytes() );
                 ^
  symbol:   variable Base64
  location: class test
1 error

所以我浏览了网站,发现您必须下载我从以下位置获得的源文件:http://commons.apache.org/proper/commons-codec/download_codec.cgi

我在“源”下下载了“commons-codec-1.10-src.tar.gz”,但我完全不知道如何继续完成连接所有内容的最后一步。我目前也在使用 Ubuntu。

我承认我看到一些帖子说要设置类路径,但我不明白,因为我找到的所有答案都是“设置类路径”,仅此而已。问题是我不知道该怎么做,而且在做这些技术工作时,我完全是个业余爱好者,尤其是在 Ubuntu 上。有人可以帮帮我吗?

【问题讨论】:

  • 获取commons-codec的编译版本,而不是下载src。然后提取该存档,在里面你应该找到一个需要添加到类路径的 jar 文件。
  • 我今天只安装了所有必要的东西让 java 在 ubuntu 上运行,所以如果我必须手动制作,我不确定类路径是否存在?
  • 您有多种选择; maven 是一个复杂的构建工具,可以为您完成。至少,您应该阅读 Java 教程的 PATH and CLASSPATH 部分。
  • 请注意user_pass.getBytes() 是危险的。它将使用底层平台的默认字符集将字符转换为字节,这意味着您将在不同的机器上获得相同值的不同字节。强烈建议改用user_pass.getBytes(StandardCharsets.UTF_8)

标签: java import base64 classpath


【解决方案1】:

如果您已经安装了 java JDK,则无需下载任何软件包或任何东西。您只是忘记导入 Base64 包。

在文档的顶部,写下: import java.util.Base64 你应该很好,花花公子。


更新

我重写了你的代码以符合Java's Base64 package.

import java.util.Base64;

String encoded = Base64.getEncoder().encodeToString(user_pass.getBytes());

【讨论】:

  • 我只下载了源码,我正在尝试使用“import org.apache.commons.codec.binary.Base64;”
  • 尝试改用java.util.Base64。无论您从哪里获得编码都是base64,因此两者都应该工作,但是这样您就不需要安装任何额外的包和多余的导入。还是我没有抓住重点?
  • 我正在尝试使用函数'Base64.encodeBase64String()"
  • 检查我所做的更新。我猜你在之前的帖子中找到了 apache Base64 包,但它现在已经过时了。请尝试代码。它会让你免于类路径等的痛苦。
  • 谢谢!这为我节省了很多麻烦,如果我一直在寻找如何去做,可能会更多。
猜你喜欢
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
相关资源
最近更新 更多