シンドライバでtnsnamesを使用できることすら知りませんでしたが、バージョン10のどこかに追加されたようです:
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
特に:
注:
JDBC ThinドライバでTNSNamesを使用する場合は、oracle.net.tns_adminプロパティをtnsnames.oraファイルを含むディレクトリに設定する必要があります。
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
前述のように、これが実際に 動作します。
「実際のネットワーク構成ディレクトリを検索する」ロジックは、一部のOracle関数を介して利用できるとは思いません。質問で概説されているように手動で行う必要があります。または、存在するTNS_ADMIN環境変数に依存する場合もあります。その場合、Javaの呼び出しは次のようになります
java -Doracle.net.tns_admin=%TNS_ADMIN%