Depois de postar em 3 fóruns e pesquisar em todos os lugares ... finalmente tentei o seguinte e funcionou ...
testShell.sh -jvalue1 -evalue4 -- -Djvalue3 -pvalue2
Aviso
--
depois de -evalue4
E a saída foi
j=value1
e=value4
remaining=-Djvalue3 -pvalue2
Acredito que --
pede getopts
para interromper as opções de processamento.