1

下面是测试完成后运行的目标之一,buil.xml(通过或失败)。此目标失败并给出错误“java.lang.ClassNotFoundException:javax.mail.internet.MimeMessage”。所以我展开了mail.1.4.jar 文件并看到了这个类。所以接下来我检查了这个 jar 是否在我的 setclasspath 目标中,它就在那里。第三件事我检查了 mail.1.4.jar 是否包含在 ant 的路径中并且它在那里。现在我无法理解为什么会收到此错误。

<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>
4

4 回答 4

1

如果 Ant 给出“java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage”错误,则表示缺少 jar。

进入findjar网站:http ://www.findjar.com/ ,通过搜索“javax.mail.internet.MimeMessage”找到对应的jar。你会发现它是mail.jar。

然后从中央 Maven 存储库下载 jar 文件:https : //mvnrepository.com/artifact/javax.mail/mail,例如版本 mail-1.4.7.jar,并将其放在您的 Ant lib 目录中:${ ANT_HOME}/lib

那应该行得通。

于 2016-09-16T10:15:47.873 回答
0

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

好的,请尝试以下操作,首先在您的 ant 安装中,${ANT_HOME}/lib 检查以下 jar 是否存在,ant-javamail,如果不存在:

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

根据您的 ant 版本选择正确的。

把这个jar复制到ant的lib目录下。并尝试重新运行任务。

让知道它是否解决。

命令运行

ant -f %ANT_HOME%/fetch.xml -Ddest=user -Dm2.url=repo1.maven.org/maven2
于 2013-04-15T12:44:33.420 回答
0

我之前从第一个线程中得到了类似的错误。您可能希望将 mail.jar 和 activation.jar 都下载到您的 ant 库文件夹下,并且在执行构建时,请确保使用“ant -lib”和 lib 文件夹的路径。

于 2013-08-26T20:09:16.700 回答
0

如果您通过 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')
])
于 2019-09-13T21:17:53.153 回答