如何正确地将 javamail 和激活依赖项添加到 ant build.xml 文件?

How to correctly add javamail and activation dependencies to ant build.xml file?

我尝试使用 JavaMailactivation jar 发送电子邮件并使用 ant 编译我的项目。 Ant 类路径如下所示:

<path id="classpath.test">
    <pathelement location="lib/javax.mail.jar"/>
    <pathelement location="lib/activation.jar"/>
    <pathelement location="build/classes/"/>
</path>

Ant 编译看起来像这样:

<target name="compile">
    <mkdir dir="build/classes/"/>
    <javac srcdir="src" destdir="build/classes/">
                    <classpath refid="classpath.test"/>
            </javac>
            <copy todir="build/classes/">
                    <fileset dir="src">
                            <exclude name="**/*.java"/>
                    </fileset>
            </copy>

</target>

但是当我尝试执行它时(也使用 ant),它会抛出

Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException

我该如何解决这个问题?

如果你需要在类路径中添加一个jar来编译代码,那么你尝试下面的<javac>,它看起来像这样:

<javac srcdir="./src" destdir="./build/classes">   
    <classpath>
        <pathelement path="lib/javax.mail.jar"/>
        <pathelement path="lib/activation.jar"/>
    </classpath>
</javac>

问题是依赖项(javax.mail.jar 和 activation.jar)没有正确包含在 ant 创建的 jar 中,所以我创建了一个 fat jar,然后一切正常。