A getopt/argparser implementation in java. Very similar to getopt.tcl
features in my cmdline-java:
- generate usage/help info from option list.
- support GNU style option and more flexible: -a --along --b -c carg -d=darg -ooptionalarg -- --notoption
- not just support a short and a long option, you can define a List {h help Help ? 帮助}
- hide attribute of option object, used to hide some option in usage/help info
- forward option
test with Cmdline.main
git clone https://github.com/tcler/cmdline-java
cd cmdline-java
javac com/github/tcler/cmdline/*.java
#the default java path is . if CLASSPATH not set
java com.github.tcler.cmdline.Cmdline -h -H -f file --file file2 -e 's/abc/xyz/' -r -n -s=A -oa=b -S '' -i -x xfile --wenj=file3 --www -aa -vvv -S DD -- -0 -y
# or: run jar file
javac com/github/tcler/cmdline/*.java
jar cfe cmdline.jar com.github.tcler.cmdline.Cmdline com/github/tcler/cmdline/*.class
java -jar cmdline.jar -h -H -f file --file file2 -e 's/abc/xyz/' -r -n -s=A -oa=b -S '' -i -x xfile --wenj=file3 --www -aa -vvv -S DD -- -0 -y
# or: run Main class by specified CLASSPATH
javac com/github/tcler/cmdline/*.java
jar cfe cmdline.jar com.github.tcler.cmdline.Cmdline com/github/tcler/cmdline/*.class
mv cmdline.jar /usr/share/java/.
export CLASSPATH=/usr/share/java/cmdline.jar:.
java -cp $CLASSPATH com.github.tcler.cmdline.Cmdline
see: https://github.com/tcler/cmdline-java/blob/master/test/CmdlineTest.java
test with test class:
git clone https://github.com/tcler/cmdline-java
cd cmdline-java
javac com/github/tcler/cmdline/*.java &&
jar cfe cmdline.jar com.github.tcler.cmdline.Cmdline com/github/tcler/cmdline/*.class &&
\mv -f cmdline.jar /usr/share/java/.
export CLASSPATH=/usr/share/java/cmdline.jar:.
javac -d . test/CmdlineTest.java
java CmdlineTest
find . -name '*.class' -o -name '*.jar' | xargs rm -f