As permissões do Linux estão vinculadas ao usuário (não ao aplicativo). Você pode obter o resultado desejado iniciando o script como um usuário normal:
OUTFILE="/home/username/mystuff"
DEFAULT="/path/to/real/deal"
touch "$OUTFILE" || OUTFILE="$DEFAULT"
sudo java_app "$OUTFILE"
O toque não funcionará em um diretório em que o usuário não tenha permissão de gravação. Nesse caso, o toque falhará e o arquivo de saída terá o caminho / nome padrão.
Sudo é invocado após este teste.