Re: How to check if jdbc drier from any vendor is installed or not ?
In article
<c6cba084-f397-4adc-89b6-a7c3ef4e86d6@n2g2000vba.googlegroups.com>,
Rohit <will.u.tellmemore@gmail.com> wrote:
I am trying to check if any JDBC driver for MS SQL Server is
installed on my system from any vendor. How can I do this? I would
like to check this on Windows as well as Linux system. If any driver
is already installed How can I get the file path for those driver
files?
It's easy enough to specify drivers to the DriverManager via the
jdbc.drivers property and -classpath option. You can also enumerate the
known drivers [1].
<code>
import java.sql.*;
import java.util.*;
class DriveTest {
public static void main (String args [])
throws SQLException, ClassNotFoundException {
System.out.println("Current JDBC Drivers: "
+ System.getProperty("jdbc.drivers"));
Enumeration e = DriverManager.getDrivers();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
}
}
</code>
<console>
$ make run
javac -cp .:/opt/h2/bin/h2.jar DriveTest.java
java -Djdbc.drivers=org.h2.Driver -cp .:/opt/h2/bin/h2.jar DriveTest
Current JDBC Drivers: org.h2.Driver
org.h2.Driver@3a328f
</console>
Of course, the drivers themselves could be anywhere in the file system.
It seems you'd have to know what you're looking for in order to find it.
Given some reasonable heuristic, you could search the relevant path(s)
using a recursive approach [2].
I'm not sure it's relevant, but I see that my favorite driver includes
the requisite META-INF entry mentioned in [1]:
$ jar tf /opt/h2/bin/h2.jar | grep services
META-INF/services/java.sql.Driver
[1]<http://java.sun.com/javase/6/docs/api/java/sql/DriverManager.html>
[2]<http://groups.google.com/group/comp.lang.java.programmer/
msg/0a85e7f1a9e9929e>
--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>