Unix: Shell Script to build CLASSPATH Dynamically
By admin on Feb 21, 2008 in hacking, Java
This is the script I used before for my legacy Java applications running on non-JDK 1.6 platform. In JDK1.6+, we can use a wildcard to include all jars in a directory. E.g.
java -classpath C:\jar_dir\*
#!/bin/sh buildClassPath() { jar_dir=$1 if [ $# -ne 1 ]; then echo "Jar directory must be specified." exit 1 fi class_path= c=1 for i in `ls $jar_dir/*.jar` do if [ "$c" -eq "1" ]; then class_path=${i} c=2 else class_path=${class_path}:${i} fi done echo $class_path #return $class_path } CP=`buildClassPath /tmp/lib` echo $CP
A similiar output as below
/tmp/lib/log4j.jar:/tmp/lib/commons-io.jar: /tmp/lib/commons-http-client.jar
A good reference can be found here.
Trevor | Sep 11, 2008 | Reply
There’s no need to handle a directory containing a single file as a special case.
Also, there’s a simpler variation here:
http://www.devdaily.com/blog/post/linux-unix/dynamically-build-java-classpath-in-bourne-shell-script/