J Dack.
J Dack.

Reputation: 23

Building Eclipse Project with External JAR

My builds script is as follows:

<project default="main">
    <target name="main" depends="clear,compile,jar">
    </target>

    <target name="clear">
        <delete includeemptydirs="true">
            <fileset dir="../bin" includes="**/*" />
        </delete>
    </target>

    <target name="compile">
        <javac srcdir="../src" destdir="../bin" />
    </target>

    <target name="jar">
        <jar destfile="../jms.jar">
            <fileset dir="../bin">
                <include name="**/*.class" />
            </fileset>
            <zipgroupfileset dir="C:/Users/Jason/Project/apache-activemq-5.9" includes="activemq-5.9.jar" />
            <manifest>
                <section name="Information">
                    <attribute name="Version" value="1.1-02" />
                </section>
            </manifest>
        </jar>
    </target>
</project>

I'm still getting errors about not being able to compile my classes due to the JAR missing. Did I add it incorrectly?

C:\Users\Jason\Project\Workspace\ActiveMQ\src has all of the source files C:\Users\Jason\Project\apache-activemq-5.9 is the destination for the JAR file

Here are my errors:

Buildfile: C:\Users\Jason\Project\Workspace\ActiveMQ\src\build.xml
clear:
compile:
    [javac] C:\Users\Jason\Project\Workspace\ActiveMQ\src\build.xml:12: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 2 source files to C:\Users\Jason\Project\Workspace\ActiveMQ\bin
    [javac] C:\Users\Jason\Project\Workspace\ActiveMQ\src\Publisher.java:1: error: package org.apache.activemq does not exist
    [javac] import org.apache.activemq.ActiveMQConnectionFactory;
    [javac]                           ^
    [javac] C:\Users\Jason\Project\Workspace\ActiveMQ\src\Publisher.java:2: error: package javax.jms does not exist
    [javac] import javax.jms.*;
    [javac] ^
    [javac] C:\Users\Jason\Project\Workspace\ActiveMQ\src\Publisher.java:7: error: cannot find symbol
    [javac]         ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
    [javac]         ^
    [javac]   symbol:   class ActiveMQConnectionFactory
    [javac]   location: class Publisher
    [javac] C:\Users\Jason\Project\Workspace\ActiveMQ\src\Publisher.java:7: error: cannot find symbol
    [javac]         ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
    [javac]                                                 ^
    [javac]   symbol:   class ActiveMQConnectionFactory
    [javac]   location: class Publisher
    [javac] 4 errors

Upvotes: 0

Views: 262

Answers (1)

mmehl
mmehl

Reputation: 244

You should add a classpath to the javac target, e.g.

<javac srcdir="../src" destdir="../bin" classpath="your-jar-file"/>

See the Javac Task documentation for further options to add a classpath.

Upvotes: 1

Related Questions