jar драйвера mysql не распознается - PullRequest
0 голосов
/ 05 мая 2009

У меня есть файл класса токена в jar-файле. Файлы классов токенов - это класс, который использует jdbc для извлечения данных из базы данных. Однако, когда я вызываю файл jar, кажется, он не распознает файл jar внешнего драйвера mysql.

Ошибка указывает на эту строку Class.forName (драйвер).

Я ссылался на драйвер mysql в файле сборки ant и на каждый путь к классам, который мог придумать.

    <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 (собственный метод) на java.net.URLClassLoader.findClass (URLClassLoader.java:188) в java.lang.ClassLoader.loadClass (ClassLoader.java:316) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:288) в java.lang.ClassLoader.loadClass (ClassLoader.java:251) в java.lang.ClassLoader.loadClassInternal (ClassLoader.java:374) в java.lang.Class.forName0 (собственный метод) в java.lang.Class.forName (Class.java:169) в socksviahttp.server.token.getConnection (token.java:58) в socksviahttp.server.token.exists (token.java:75) at socksviahttp.server.ServletSocks.doPost (ServletSocks.java:328) на javax.servlet.http.HttpServlet.service (HttpServlet.java:760) на javax.servlet.http.HttpServlet.service (HttpServlet.java:853) at jhttpserver.JHttpServerThread.run (JHttpServerThread.java:217)

Ответы [ 2 ]

1 голос
/ 05 мая 2009

И строка, регистрирующая драйвер mysql, выглядит примерно так:

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

Ошибка загрузчика классов, по-видимому, относится к незакрашенному классу mysql, а не к тому, на который ссылается пакет Как правило, эта ошибка появляется только при динамической загрузке класса без указания полного имени класса.

Что вы используете для загрузки класса драйвера mysql? если это весенний конфигурационный файл, то у вас, вероятно, нет полного имени класса в конфигурационном файле.

И я только заметил строчную букву 'Class-path'. Предполагается, что это «Class-Path»

0 голосов
/ 05 мая 2009

Когда вы запускаете файл JAR, дважды щелкнув по нему или из командной строки):

java -jar VNCOverHTTPServer.jar

тогда в каталоге, где находится ваш jar, должна быть папка lib с необходимыми jar-файлами. Это тот случай?

Обновление: Из вашего сообщения об ошибке видно, что вы используете URLClassLoader для загрузки класса mysql. Добавление файла jar в classpath не поможет, вам нужно сделать класс доступным через ссылку URL.

...