Header Ads Widget

Responsive Advertisement

How to add multiple jar file in java class path


Incorporating a JAR file into the classpath is a routine task for Java developers, and various programmers employ different methods to achieve this. Given that Java provides multiple options for including JAR files in the classpath, it is essential to understand the advantages and disadvantages of each method, as well as their operational mechanisms. There are five distinct methods for adding JAR files to the classpath in Java, some of which we have previously discussed in the context of how the classpath functions in Java and how to configure the path in Java.


To add multiple JAR files to the Java classpath in a Linux environment, you can specify the classpath using the -cp (or -classpath) option when running your Java application. There are a few ways to do this depending on your specific requirements.

1. Add Multiple JAR Files Directly in Command

If you want to add multiple JAR files individually to the classpath, you can list them separated by a colon (:) in the -cp option.

bash

java -cp /path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar com.example.MainClass

 

2. Add All JAR Files in a Directory

If you want to include all JAR files within a specific directory, you can use the wildcard * to include all JAR files in that directory.

bash

java -cp "/path/to/jars/*" com.example.MainClass

 

3. Combining JAR Files and Directories

You can combine individual JAR files and directories containing JAR files in the classpath by separating them with colons (:).

bash

java -cp /path/to/jar1.jar:/path/to/jar2.jar:/path/to/jars/* com.example.MainClass

 

4. Using the CLASSPATH Environment Variable

You can also set the CLASSPATH environment variable in your shell session or script. This will make the specified classpath available for any Java command executed in that session.

bash

export CLASSPATH=/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jars/*

java com.example.MainClass

 

5. Specifying Classpath in a Shell Script

If you frequently need to run your Java application with the same set of JARs, you can create a shell script that sets the classpath and runs your Java application.

Example run.sh Script

bash

#!/bin/bash

 

CLASSPATH=/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jars/*

 

java -cp "$CLASSPATH" com.example.MainClass

 

Make the script executable:

bash

chmod +x run.sh

 

Then run your Java application using the script:

bash

./run.sh

 

6. Specifying Classpath in a Shell Script another example:

bash

#!/bin/bash

 

#

# Copyright Kartik Mandal

#

 

# If WAS_HOME is defined use Java from WAS

# O/S wise use SUN Standard.

if [ x"$WAS_HOME" = "x" ];then

        export JAVA_HOME=$JAVA_HOME

else

        export JAVA_HOME=$WAS_HOME/java

fi

 

export LIB=../lib

#export LOGINTOOL_CP=$LIB/commons-beanutils.jar:$LIB/collections.jar:$LIB/configuration-1.0-dev.jar:$LIB/dev.jar:$LIB/digester.jar:$LIB/commons-lang-1.0.jar:$LIB/commons-dbcp-1.2.1.jar:$LIB/jce1_2_1.jar:$LIB/jdbc2pool-1.0-dev.jar:$LIB/jdbcpool.jar:$LIB/jregex.jar:$LIB/lang-0.1-dev.jar:$LIB/log4j-1.1.3.jar:$LIB/log4j-core.jar:$LIB/logging.jar:$LIB/xerces.jar:$LIB/oracle.jar:$LIB/ons.jar:$LIB/pool-1.0.jar:$LIB/stratum-1.0-b3.jar:$LIB/props.jar:$LIB/stdext.jar:$LIB/torque-3.2-rc1.jar:$LIB/validator.jar:$LIB/com.ibm.mq.jar:$LIB/com.ibm.mqjms.jar:$LIB/connector.jar:$LIB/jms.jar:$LIB/dhbcore.jar:$LIB/spymemcached-2.8.1.jar:$LIB/com.ibm.mq.headers.jar:$LIB/com.ibm.mq.jmqi.jar:$LIB/bcpg-jdk16-146.jar:$LIB/bcprov-jdk16-144.jar:$LIB/.

 

for i in $LIB/*.jar

do

    LOGINTOOL_CP=$LOGINTOOL_CP:$i

done

 

export $LOGINTOOL_CP

 

export JAVA_CMD_LINE_ARGS="-Xmx512m -Xms256m"

 

 

 

cmd

@rem Copyright Kartik Mandal

 

@echo off

 

 

: assumes WAS_HOME points to the websphere installation (e.g: x:\WebSphere\AppServer)

 

: If WAS_HOME is defined use Java from WAS. O/S wise use SUN Standard.

if DEFINED WAS_HOME GOTO WebSphere

set JAVA_HOME=%JAVA_HOME%

GOTO tool

 

:WebSphere

set JAVA_HOME=%WAS_HOME%\java\jre

 

:tool

if DEFINED LOGINTOOL_DEBUG GOTO noset

set LIB=..\lib

:noset

 

#set LOGINTOOL_CP=%LIB%\commons-beanutils.jar;%LIB%\collections.jar;%LIB%\configuration-1.0-dev.jar;%LIB%\dev.jar;%LIB%\digester.jar;%LIB%\commons-lang-1.0.jar;%LIB%\commons-dbcp-1.0-dev-20020806.jar;%LIB%\jce1_2_1.jar;%LIB%\jdbc2pool-1.0-dev.jar;%LIB%\jdbcpool.jar;%LIB%\jregex.jar;%LIB%\lang-0.1-dev.jar;%LIB%\log4j-1.1.3.jar;%LIB%\log4j-core.jar;%LIB%\logging.jar;%LIB%\xerces.jar;%LIB%\oracle.jar;%LIB%\ons.jar;%LIB%\pool-1.0.jar;%LIB%\stratum-1.0-b2-dev.jar;%LIB%\props.jar;%LIB%\stdext.jar;%LIB%\torque-3.0-rc1.jar;%LIB%\validator.jar;%LIB%\com.ibm.mq.jar;%LIB%\com.ibm.mqjms.jar;%LIB%\connector.jar;%LIB%\jms.jar;%LIB%\spymemcached-2.8.1.jar;%LIB%\dhbcore.jar;%LIB%\com.ibm.mq.headers.jar;%LIB%\com.ibm.mq.jmqi.jar;%LIB%\.

 

set LOGINTOOL_CP=%LIB%\*

 

 

 

 

7. Example with All Approaches Combined

Suppose you have three JAR files (lib1.jar, lib2.jar, lib3.jar) in the /home/user/libs/ directory and a main JAR file main.jar in /home/user/app/. You can set up the command as follows:

bash

java -cp "/home/user/app/main.jar:/home/user/libs/*" com.example.MainClass

 

Summary

  • Use the -cp or -classpath option to specify multiple JAR files or directories containing JARs, separated by colons (:).
  • Use wildcards (*) to include all JAR files in a directory.
  • Set the CLASSPATH environment variable for persistent classpath settings across multiple Java commands.
  • Create a shell script for convenience if you need to run the same Java classpath configuration frequently.

 


add multiple jar file in class path
add multiple jar file in class path


Post a Comment

0 Comments