我想开发一个应用程序,我想根据系统更改数据库。
例如:如果安装了MS-Office,我会将Java代码连接到.mdf文件;如果安装了Oracle,我会使用orathin
。
这将有助于我不指定数据库并减少我的依赖关系。
答案 0 :(得分:4)
简单的答案是否定的。没有标准的方法可以做到这一点,我也不知道有任何第三方库这样做。
更详细的答案是您可以理论上编写自己的代码来执行此操作,但代码将是不可移植且不可靠的。
即使您可以准确地确定安装了哪些软件(与您相关),您也会遇到更多问题。
简而言之,我怀疑您是否能够设计出适合大部分用户的自动安装策略。
答案 1 :(得分:1)
您可以尝试探测所需的应用程序:识别操作系统,然后遍历您希望安装应用程序的目录(%WINDRIVE%/ Program Files,/ Applications,/ usr / share等)。
搜索时,如果版本不同,使用正则表达式可能会有所帮助,因此您不必手动添加每个应用程序版本。
在Linux / Unix中,您可以发出哪个命令来确定应用程序是否已安装,但我不确定它是否可靠(即应用程序二进制文件无法通过PATH变量访问) )。
另一种(更好的)方法是更好地了解OS编程和操作系统的API,并通过JNI进行一些系统调用。
希望这有帮助。
编辑:另一种方法可能是找到相关文件扩展名的默认程序,并检查它是否是您需要的程序(即用户没有...说与.mdf文件关联的VLC播放器)。如果您可以获得与文件类型关联的所有程序的列表,那么您只需抓取该列表即可。请注意,这可能不如之前的解决方案可靠,因为您需要的程序可能没有与之关联的文件类型。
答案 2 :(得分:0)
您可以检查PATH以查找已安装的程序。然后你可以在那里搜索已知程序。
如果找到多个程序或没有找到,则可以提示用户。一般来说,提示用户可能是一个好主意:也许用户有第三个解决方案并能够连接到您的程序,或者您的搜索只找到一个程序xy,而搜索没有产生yx,即yx64或yx2012 on他的系统。