Je ne savais même pas qu'il était possible d'utiliser tnsnames avec le pilote léger, mais apparemment, il a été ajouté quelque part dans la version 10 :
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
En particulier :
Remarque :
Lorsque vous utilisez TNSNames avec le pilote JDBC Thin, vous devez définir la propriété oracle.net.tns_admin sur le répertoire qui contient votre fichier tnsnames.ora.
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
Comme mentionné, je n'ai pas vérifié si cela réellement fonctionne.
Je ne pense pas que la logique "trouver le répertoire de configuration réseau réel" soit disponible via une fonction Oracle. Vous devrez le faire manuellement comme indiqué dans votre question, ou peut-être compter sur la présence de la variable d'environnement TNS_ADMIN. Dans ce cas, l'invocation java serait
java -Doracle.net.tns_admin=%TNS_ADMIN%