2
|
C. Ross trotttrotttrott · 技术社区 · 15 年前 |
![]() |
1
2
通常,您可以修改 classpath at runtime . 类似的方法是处理Java中的“插件”类型JAR的一般方法(与您的情况非常类似)。 |
![]() |
2
0
您可以包括有关在配置文件中使用哪个驱动程序的信息。或者在JAR文件本身的清单中。启动应用程序时只需包含所有JAR文件,但从配置中加载驱动程序名称。 |
![]() |
3
0
我要说的是,Java的方式(如在标准实践中)将第三方代码包含在部署的同一个jar中。然而,JAR只是一个zip文件,所以在大多数情况下(除了清单中的一些花哨的东西),如果需要的话,您可以组合它们。 也就是说,您可以在JAR文件中包含对所有潜在JDBC驱动程序JAR的类路径引用,或者简单地以正确的方式调用JDBC驱动程序JAR。然后在同一个目录中有一个配置文件(一定要包括。在jar的类路径中),然后从中读取驱动程序名,并使用class.forname()加载驱动程序。 你可以做一些更复杂的事情(比如在运行时找到合适的jar并动态地加载它,即使它不在类路径上),但是这些事情有点复杂,所以像上面这样简单的事情应该可以工作。 你不应该重新编译。如果在更改驱动程序时必须重新编译,那么您实际上没有正确地执行JDBC。 |
![]() |
4
0
您必须为特定的提供者分离驱动程序JAR文件和JDBC驱动程序的实际名称。 我真的鼓励您不要在自己的jar中包含JDBC驱动程序jar。 就在运行时的路径上。 类似地,您可以在运行时从系统属性中获取JDBC驱动程序管理器的名称,甚至是配置文件。 所以像这样运行应用程序:
在您的应用程序中,执行如下操作(我省略了异常处理):
; 通过这种方式,只需将适当的JAR文件添加到类路径并更改DriverManager和DBURL属性,就可以更改驱动程序。这样就不需要重新编译来支持新的驱动程序。 这是我能想到的最简单的解决方案。 |
![]() |
amaidment · Java资源InputStream正在关闭? 7 年前 |
|
kussart · 如何压缩java应用程序以获得一个小型jar 7 年前 |
![]() |
a7emenov · 通过Jenkins在远程服务器上部署jar 7 年前 |