Editar: Acabamos de encontrar uma solução diferente:
Se você tem isso
JAVA_TMP_DIR=/opt/my-service/tmp
JAVA_JVM_ARGS=-server -Xms1500m -Xmx1500m ...
...
então você pode definir o ExecStart assim
ExecStart=/usr/bin/java $JAVA_JVM_ARGS -Djava.io.tmpdir=${JAVA_TMP_DIR} -jar /opt/my-service/my-service.jar
(verifique se a segunda variável está em {})
Abaixo da postagem original, provavelmente também uma solução para alguém:
Na verdade, parece não funcionar, se você tiver uma variável dentro do parâmetro como -Djava.io.tmpdir=$JAVA_TMP_DIR
Eu sugiro que você resolva seu problema assim. Altere seu EnvironmentFile assim:
JAVA_TMP_DIR='-Djava.io.tmpdir=/opt/my-service/tmp'
Em seguida, você pode alterar a linha de inicialização do arquivo de unidade para esta:
ExecStart=/usr/bin/java $JAVA_JVM_ARGS $JAVA_TMP_DIR -jar /opt/my-service/my-service.jar
Isso funcionou no meu caso.