获取Sql Developer的版本,如果是该版本第一次在该计算机上执行

时间:2018-07-02 04:02:01

标签: c# c#-4.0 oracle-sqldeveloper

我想知道是否有办法获取已安装的sql developer的版本,以及该版本是否首次在pc上运行。 我想做的就是这样

Version = [installedVersion]
isTheFirstTime = [true, or false]
if(Version == xx and isTheFirstTime)
{
TODO
}

我知道这个问题有点含糊,但我需要:D 哦,我也需要oracle客户端版本。 这里的问题是idont知道从哪里获取这种数据。

谢谢

2 个答案:

答案 0 :(得分:2)

了解从未运行过sqldev版本x.y.z的最简单方法是对照未压缩的版本检查设置。

sqldev的版本位于../bin目录中的一个名为version.properties的文件中。

:~ klrice$ cd sqldeveloper/bin
kriss-MacBook-Pro:bin klrice$ ls
..
version.properties <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< THE FILE
..

kriss-MacBook-Pro:bin klrice$ more version.properties 

COMPANY=Oracle
PRODUCT=SQL Developer
VERSION=18.03001761612f 
VER=18.3.0                 <<<<<<<<<<<<<<<<<<<<<<<<<< VERSION
VER_FULL=18.3.0.176.1612   <<<<<<<<<<<<<<<<<<<<<<<<<< VERSION
BUILD_LABEL=176.1612
BUILD_NUM=176.1612
EDITION=

一旦知道该版本,就可以针对设置进行检查,该设置将为每个版本的sqldev运行一个目录。这些设置使用版本号作为目录名称。

在Windows上,它位于AppData\Roaming\SQL Developer中 在linux / osx上,它位于~/.sqldeveloper

kriss-MacBook-Pro:bin klrice$ ls ~/.sqldeveloper/
17.0.0/                  
4.2.0/
17.3.0/
17.3.1/ 
17.4.0/ 
18.1.0/ 
18.3.0/ 
4.1.5/  
...

现在的诀窍是在启动sqldeveloper.exe(.sh)之前有一个包装器/批处理/ shell脚本,以在启动测试并建立设置目录之前捕获测试的情况。

现在,如果您打算将Java扩展编写为sqldev,则还有更多选择,例如具有专用的首选项来跟踪代码段是否已运行。

答案 1 :(得分:0)

SQL Developer的版本将在注册表中的DisplayName下:

enter image description here

参考: https://stackoverflow.com/a/26686738/495455

很难判断该应用程序是否已运行一次。在新系统上安装并在首次运行时,运行Process Monitor并查找其在首次运行时创建的任何文件或注册表项。

或者,您可以查询EventLogs并检查其是否已运行一次。您可以使用LogParser 使用SQL语法快速查询EventLog。