2015-09-14 4 views
2

У меня есть несколько серверов, которые используют драйвер JDBC Microsoft SQL Server. Все файлы имеют имя sqljdbc4.jar. Мне нужно знать, какая версия драйвера содержит каждый. Временные метки и размеры файлов не помогают, так как мне нужно извлечь номер версии драйвера. Мне нужно иметь возможность запускать это в командной строке.Определить версию JDBC SQL Server в командной строке

Я видел для DB2 вы можете запустить эту команду и получить версию:

java -cp ./db2jcc.jar com.ibm.db2.jcc.DB2Jcc -version 

Что эквивалентно, если таковые имеются, для Microsoft SQL Server?

+0

http://stackoverflow.com/questions/5834794/how-to-check-the-version-of-jar-file, может помочь – RadijatoR

ответ

2

Кажется, что не существует никакого специального CLI для распечатки версии драйвера, но вы можете попросить водитель MS 4.x для своей версии:

import java.sql.Driver; 
import com.microsoft.sqlserver.jdbc.SQLServerDriver; 
... 
Driver driver = new SQLServerDriver(); 
driver.getMajorVersion(); // -> 4 
driver.getMinorVersion(); // -> 0, 1, 2, ... 

Вы можете создать простую командную строку оболочку, чтобы распечатать этот Информация.

1

IBM предоставляет в своем JAR специальную оснастку для описания поведения, которое вы описываете. Это не общая особенность драйверов JDBC или файлов JAR.

Microsoft документирует доступные механизмы для определения версии драйвера on MSDN. Они предлагают два варианта:

  • извлечения информации из [SQLServer] DatabaseMetaData объекта, полученная с помощью драйвера (т.е. с помощью программы Java); наиболее подходящим методом для вашего использования является getDriverVersion(). Или
  • извлечь информацию из файла readme.txt, предоставленного в дистрибутиве.

Если readme.txt не упакован в JAR (возможно, но маловероятно), то первый подход будет работать только с файлом JAR. Не стоит слишком писать Java-программу и, возможно, скрипт-оболочку для применения этого подхода к задаче, но она не выглядит так же просто, как и для драйвера DB2.

Смежные вопросы