DEV Community

Andrew (he/him)
Andrew (he/him)

Posted on

Easily Merge Multiple Java --classpath Arguments

I always confuse myself as to whether the correct flags for java and the jshell are -cp or --classpath or --class-path or something else, so instead of trying to remember something like a normal human, I instead spent a few hours pulling this script together.

It automatically detects any variation of cp, classpath, and class-path flags in a series of command-line arguments, and concatenates all of the correct arguments to give you a nice, clean classpath. I hope it's useful!

Top comments (2)

vlasales profile image
Vlastimil Pospichal • Edited

An alternative to the for loop is the while loop with the shift command. It is without indexes and much simpler.

BTW: This script look like in Java. Bash is not Java, Bash is different. Use echo for return values from function.

awwsmm profile image
Andrew (he/him)

Hi Vlastimil. I used indices because I need the i-th argument and also the i+1-th argument at the same time. shift throws away earlier arguments. There might be a way to refactor it, which I would love to see.

I use exit codes to indicate the status of the method -- i.e. 0 if everything went fine, 1 if there was an error, etc. I also use echo to print strings meant to be "returned" from the functions. See above!