Tôi thậm chí còn không biết rằng việc sử dụng tnsnames với trình điều khiển mỏng là có thể, nhưng rõ ràng nó đã được thêm vào đâu đó trong phiên bản 10:
http://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
Cụ thể:
Lưu ý:
Khi sử dụng TNSNames với trình điều khiển JDBC Thin, bạn phải đặt thuộc tính oracle.net.tns_admin thành thư mục chứa tệp tnsnames.ora của bạn.
java -Doracle.net.tns_admin=%ORACLE_HOME%\network\admin
Như đã đề cập, tôi chưa kiểm tra xem điều này có thực sự hoạt động.
Tôi không nghĩ rằng logic "tìm thư mục cấu hình mạng thực tế" có sẵn thông qua một số chức năng Oracle. Bạn sẽ phải thực hiện thủ công như đã nêu trong câu hỏi của mình hoặc có thể dựa vào biến môi trường TNS_ADMIN hiện có. Trong trường hợp đó, lệnh gọi java sẽ là
java -Doracle.net.tns_admin=%TNS_ADMIN%