Mir war nicht einmal bewusst, dass die Verwendung von tnsnames mit dem Thin-Treiber möglich ist, aber anscheinend wurde es irgendwo in Version 10 hinzugefügt:
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
Insbesondere:
Hinweis:
Wenn Sie TNSNames mit dem JDBC Thin-Treiber verwenden, müssen Sie die Eigenschaft oracle.net.tns_admin auf das Verzeichnis setzen, das Ihre Datei tnsnames.ora enthält.
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
Ob das tatsächlich ist, habe ich wie gesagt nicht überprüft funktioniert.
Ich glaube nicht, dass die Logik "Suchen Sie das aktuelle Netzwerkkonfigurationsverzeichnis" über eine Oracle-Funktion verfügbar ist. Sie müssen dies wie in Ihrer Frage beschrieben manuell tun oder sich darauf verlassen, dass die Umgebungsvariable TNS_ADMIN vorhanden ist. In diesem Fall wäre der Java-Aufruf
java -Doracle.net.tns_admin=%TNS_ADMIN%