有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mysql可移植地查找Java类

我对Java还不熟悉,但到目前为止,我找到了一条很好的路。我的应用程序现在需要连接到MySQL,因此根据大量教程,我会这样做:

Class.forName ("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection (url, userName, password);

这一切都很好,除非我需要在我的类路径中有MySQL JDBC驱动程序的位置,如果Java要找到它的话。我的Gentoo开发机器在/usr/share/jdbc-mysql/lib/jdbc-mysql中。jar,但运行应用程序的Debian服务器在/usr/share/java/mysql中。罐子因此,在不同的Linux发行版上,位置可能不同

我可以在Eclipse中设置类路径,但这毫无意义,因为在部署机器上,我不会在Eclipse中运行它。我可以编写一个包装器shell脚本,以某种方式找出驱动程序的位置并设置类路径,但这似乎很痛苦

我的应用程序找到驱动程序的正确方法是什么,无论分发版将其存储在何处

在其他编程语言中,我习惯于这种自动操作。在perl中,我编写了“use Package::Name”,它只会找到它,而不管发行版将它存储在哪里。在C中,动态库自动位于/usr/lib/中

感谢您的帮助,谢谢


共 (5) 个答案

  1. # 1 楼答案

    您可以将sql驱动程序存储在应用程序的lib文件夹中

  2. # 2 楼答案

    这将取决于你打算如何建造它。如果对源代码使用vanilla java jar打包,那么很可能需要使用相对路径而不是文字路径来实现这一点

  3. # 3 楼答案

    一种可能性是不依赖操作系统发行版来提供依赖性并自己发行。大多数应用程序都是这样工作的

    或者,用户可以被要求将jar放置在应用程序已知的位置

  4. # 4 楼答案

    如果您有一个安装脚本,那么您可以在那里找到jar文件并设置类路径

    然而,我们通常做的是在java程序中找到一个lib文件夹,并将所需的JAR放在那里。这样,我们也可以控制使用什么版本

  5. # 5 楼答案

    Class.forName ("com.mysql.jdbc.Driver")
    

    对于几个JDBC版本,您根本不需要这样做