Assumindo que isso está realmente em um script de shell e não em algo como um Makefile ...
Não há absolutamente nenhuma diferença no shell entre $variable
e ${variable}
. Eles são intercambiáveis.
Pode-se usar ${variable}
se for para ser expandido como parte de uma string e o caractere imediatamente seguinte for um caractere que seja válido como parte de um nome de variável, por exemplo, como em "${variable}A"
.
Portanto, usar ${variable}
não explica a diferença que você vê.
A única coisa certa é que JAVA_OPTS
parece ter um valor diferente na segunda invocação.