DEV Community

loading...

Easily Merge Multiple Java --classpath Arguments

Andrew (he/him)
Got a Ph.D. looking for dark matter, but not finding any. Now I code full-time. Je parle un peu français.
・1 min read

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!

Discussion (2)

Collapse
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.

Collapse
awwsmm profile image
Andrew (he/him) Author

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!