xargs + shell script のはまりどころ

昨今、Java でプログラムを書く場合に外部ライブラリに依存することが多いと思うのだけども*1、そういう場合

#!/bin/sh

java -cp commons-lang.jar:commons-logging.jar:log4j.jar:classes com.example.Foo "$@"

な shell script を用意して使うことが多い*2
で、この場合

find . -type f -print0 | xargs -0 -e ./foo.sh

てなことをやると、実際に java を起動する場合のコマンドラインが ARG_MAX を超えるなんて羽目になってはまる罠。
というようなことを誰も書かないなぁ、と思って書いてみたわけだけど、これって常識ではないんだろうか。だからこそだれも書かないのかな?

*1:Javaの場合コンパイル済みの JAR に CLASSPATH を通すだけだし

*2:Cygwin でも使いたい場合はさらに cygpath を使って色々やることになる