-->

build.xml文件是无法发送电子邮件,提供了“抛出java.lang.ClassNotFound

2019-10-18 01:05发布

下面是测试,buil.xml(合格或不合格)完成后运行的目标之一。 这个目标失败,并给予错误“抛出java.lang.ClassNotFoundException:的javax.mail.internet.MimeMessage”。 所以,我扩大了mail.1.4.jar文件,看到这个类在那里。 所以下次我检查这个罐子在那里我setclasspath目标或没有,它在那里。 我检查了mail.1.4.jar第三件事被列入蚂蚁的路径或不和它在那里。 现在我无法理解为什么我收到此错误。

<target name="sendmail">
    <mail from="[myname@company.com]"
    subject="Test Email" mailhost="smpt.gmail.com" 
    user="myusername" password="mypassword" message="This is a test email">
        <to name="receivers name" address="[receiver@gmail.com]" />
    </mail>
</target>

Answer 1:

如果蚂蚁给出了“抛出java.lang.ClassNotFoundException:的javax.mail.internet.MimeMessage”的错误,这意味着有一个罐子失踪。

转至findjar网站: http://www.findjar.com/ ,并通过搜索“的javax.mail.internet.MimeMessage”找到相应的罐子。 你会发现它的mail.jar。

:然后下载从中央Maven仓库的jar文件https://mvnrepository.com/artifact/javax.mail/mail在Ant lib目录下,例如,版本邮件1.4.7.jar,并把它:$ { ANT_HOME} / lib目录

这应该工作。



Answer 2:

在类路径和相关的传递依赖添加的mail.jar。

好的尝试以下方法,首先在你的Ant安装,$ {ANT_HOME} / lib目录检查下列罐子存在,蚂蚁JavaMail的,如果不是:

您可以在这里找到如下: http://mvnrepository.com/artifact/org.apache.ant/ant-javamail

根据你的蚂蚁版本选择正确的一个。

这个罐子蚂蚁的lib目录复制。 并尝试重新运行任务。

我们知道它是否解决。

命令来运行

ant -f %ANT_HOME%/fetch.xml -Ddest=user -Dm2.url=repo1.maven.org/maven2


Answer 3:

我之前接到了第一线的类似错误。 你可能想同时下载了mail.jar和activation.jar你的蚂蚁库文件夹下位于当你执行的身材,请确保您使用的“蚁族-lib”的路径到你的lib文件夹。



Answer 4:

如果您是通过Groovy中使用Ant,那么你可以通过添加必要的库@Grab像这样:

@GrabConfig(systemClassLoader=true)
@Grapes([
    @Grab(group='org.apache.ant', module='ant-javamail', version='1.10.7'),
    @Grab(group='com.sun.mail', module='javax.mail', version='1.6.2')
])


文章来源: Build.xml is failing to send email, gives “java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage” error