- How can I avoid needing to specify a fully qualified class name on the command line when delivering a single jar and using reflection?
- <property name="build" location="build"/>
- <property name="jars" location="${build}/jars"/>
- <property name="classes" location="${build}/classes"/>
- <property name="src" location="src/dom/place/proj"/>
- <target name="utility">
- <javac
- includeantruntime="false"
- srcdir="${src}/utility" destdir="${classes}"
- classpathref="classpath" />
- <jar
- destfile="${jars}/utility.jar"
- basedir="${classes}"
- includes="**/utility/**" />
- </target>
- <target name="tokenizers" depends="utility">
- <javac
- includeantruntime="false"
- srcdir="${src}/tokenizers"
- destdir="${classes}"
- classpathref="classpath" />
- <jar
- destfile="${jars}/tokenizers.jar"
- basedir="${classes}"
- includes="**/tokenizers/**" />
- </target>
- <target name="tokenize-file-jar">
- <jar destfile="${dist}/TokenizeFile.jar">
- <zipgroupfileset dir="${jars}">
- <include name="utility.jar"/>
- <include name="tokenizers.jar"/>
- </zipgroupfileset>
- <manifest>
- <attribute name="Main-Class" value="dom.place.proj.tokenizers.TokenizeFile"/>
- </manifest>
- </jar>
- </target>
- prompt > unzip -l TokenizeFile.jar
- Archive: TokenizeFile.jar
- Length Date Time Name
- -------- ---- ---- ----
- 0 01-11-12 11:07 META-INF/
- 286 01-11-12 11:07 META-INF/MANIFEST.MF
- 0 01-11-12 10:16 dom/
- 0 01-11-12 10:16 dom/place/
- 0 01-11-12 10:16 dom/place/proj/
- 0 01-11-12 10:16 dom/place/proj/tokenizers/
- 1737 01-11-12 11:07 dom/place/proj/tokenizers/FileTokenizer.class
- 1411 01-11-12 11:07 dom/place/proj/tokenizers/PorterTokenizer.class
- 1754 01-11-12 11:07 dom/place/proj/tokenizers/TokenizeFile.class
- 992 01-11-12 11:07 dom/place/proj/tokenizers/Tokenizer.class
- 0 01-11-12 10:16 dom/place/proj/utility/
- 1106 01-11-12 11:07 dom/place/proj/utility/BoundedExecutor.class
- 3128 01-11-12 11:07 dom/place/proj/utility/Converter.class
- 1107 01-11-12 11:07 dom/place/proj/utility/ExceptionHandler.class