0

添加新的 AUTH XOAUTH2 命令后尝试编译项目时出现以下错误。

  byte[] response = String.format("user=%s\1auth=Bearer %s\1\1", msg.getFrom(),
            token).getBytes();

    response = BASE64EncoderStream.encode(response);
    transport.issueCommand("AUTH XOAUTH2 " + new String(response), 235);


issueCommand(java.lang.String,int) has private access in com.sun.mail.smtp.SMTPTransport
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error

我尝试包括<compilerarg value="-Xlint:unchecked"/>,但仍然无法解决。所以我添加了另一个<compilerarg value="-Xlint:deprecation"/>. 但仍然说有错误。

这是编译xml信息。

<javac source="1.6" target="1.6" srcdir="${src}" destdir="${build}" deprecation="no" debug="yes" listfiles="no">

注意:我使用的是 Javamail 1.4 版本 Java Class Version: 1.4 (48.0)

4

1 回答 1

0
  • javap com.sun.mail.smtp.SMTPTransport报告 public synchronized void issueCommand(java.lang.String, int) throws javax.mail.MessagingException;对于 JavaMail 1.4.4。

  • Javadoc 说该方法是@since 1.4.1。

所以该方法是公开的,而不是私有的。

因此,您必须在某处放置另一个版本的 mail-*.jar。否则你描述的情况是不可能的。否则,com.sun.mail.smtp.SMTPTransport由于某种原因,您有自己的不兼容类。

否则,该方法在 JavaMail 1.4 中是私有的,并且您还没有升级 JavaMail,您当然应该升级,因为您落后 5 个版本。

于 2013-02-04T06:10:28.087 回答