mysql驱动程序jar无法识别

时间:2009-05-05 11:15:03

标签: java mysql jdbc driver

我在jar文件中有一个令牌类文件。令牌类文件是使用jdbc从数据库中检索数据的类。但是,当我调用jar文件时,它似乎没有识别外部mysql驱动程序jar文件。

错误指向此行 的Class.forName(驾驶员);

我在ant构建文件中引用了mysql驱动程序以及我能想到的每个类路径。

                                               

    <mkdir dir="build/server/dist"/>
    <jar destfile="build/server/dist/VNCOverHTTPServer.jar" basedir="build/server/classes">
        <manifest>
            <attribute name="Main-Class" value="jhttpserver.JHttpServer"/>
            <attribute name="Class-path" value="lib/servlet.jar lib/mysql-connector-java-5.1.7-bin.jar config/"/>
        </manifest>
    </jar>

什么都没有用?任何帮助将不胜感激。

感谢

java.lang.ClassNotFoundException:mysql     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:200)     at java.security.AccessController.doPrivileged(Native Method)     在java.net.URLClassLoader.findClass(URLClassLoader.java:188)     在java.lang.ClassLoader.loadClass(ClassLoader.java:316)     at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:288)     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)     at java.lang.Class.forName0(Native Method)     at java.lang.Class.forName(Class.java:169)     在socksviahttp.server.token.getConnection(token.java:58)     在socksviahttp.server.token.exists(token.java:75)     在socksviahttp.server.ServletSocks.doPost(ServletSocks.java:328)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:760)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:853)     在jhttpserver.JHttpServerThread.run(JHttpServerThread.java:217)

2 个答案:

答案 0 :(得分:1)

注册mysql驱动程序的行是:

Class.forname("com.mysql.jdbc.Driver");

类加载器错误似乎是一个朴素的'mysql'类,而不是包引用的类。通常,只有在动态加载类而未指定完整的类名时才会看到此错误。

你用什么来加载mysql驱动程序类?如果它是一个spring配置文件,那么你可能在配置文件中没有完整的类名。

我刚刚注意到小写的“Class-path”。它应该是'Class-Path'

答案 1 :(得分:0)

运行jar文件时,可以双击它或从命令行运行:

java -jar VNCOverHTTPServer.jar

然后在jar所在的目录中,应该有一个包含所需jar的lib文件夹。是这种情况吗?

更新:从错误报告中可以看出,您正在使用URLClassLoader加载mysql类。在类路径中添加jar文件无济于事,您需要通过URL链接使该类可用。