我在jar文件中有一个令牌类文件。令牌类文件是使用jdbc从数据库检索数据的类。但是,当我调用jar文件时,它似乎无法识别外部mysql驱动程序jar文件。
错误指向此行Class.forName(driver);。
我已经在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>什么都不能用?任何帮助都将不胜感激。
谢谢
方法: mysql at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native java.lang.ClassNotFoundException) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at 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(本地方法) at socksviahttp.server.token.getConnection(token.java:58) at socksviahttp.server.token.exists(token.java:75) at socksviahttp.server.ServletSocks.doPost(ServletSocks.java:328) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java的java.lang.Class.forName(Class.java:169):853)在jhttpserver.JHttpServerThread.run(JHttpServerThread.java:217)
发布于 2009-05-05 12:16:30
注册mysql驱动程序的代码行类似于:
Class.forname("com.mysql.jdbc.Driver");类加载器错误似乎是针对未修饰的'mysql‘类,而不是包引用的类。通常只有在没有指定完整类名的情况下动态加载类时才会看到此错误。
您使用什么来加载mysql驱动程序类?如果它是一个spring配置文件,那么您可能在配置文件中没有完整的类名。
我刚刚注意到了小写的“Class-path”。它应该是“Class-Path”
发布于 2009-05-05 11:31:01
当您通过双击或从命令行运行jar文件时:
java -jar VNCOverHTTPServer.jar然后,在您的jar所在的目录中,应该有一个包含所需jar的lib文件夹。真的是这样吗?
mysql:从您的错误报告中可以明显看出,您正在使用URLClassLoader加载类。在类路径中添加jar文件无济于事,您需要通过URL链接使类可用。
https://stackoverflow.com/questions/824415
复制相似问题