0

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>

何も機能していませんか?任意の助けをいただければ幸いです。

ありがとう

java.lang.ClassNotFoundException: mysql at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) java.lang.ClassLoader.loadClass(ClassLoader.java:316) で、sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:288) で、java.lang.ClassLoader.loadClass(ClassLoader.java:251) で。 lang.ClassLoader.loadClassInternal(ClassLoader.java:374) で java.lang.Class.forName0(Native Method) で 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) at jhttpserver.JHttpServerThread.run(JHttpServerThread.java:217)

4

2 に答える 2

1

そして、mysqlドライバーを登録する行は次の行に沿ったものです:

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

クラスローダーエラーは、パッケージによって参照されているものではなく、装飾されていない「mysql」クラスに対するもののようです。通常、このエラーが表示されるのは、完全なクラス名を指定せずにクラスを動的にロードしている場合のみです。

mysqlドライバークラスをロードするために何を使用しますか?Spring構成ファイルの場合は、構成ファイルに完全なクラス名が含まれていない可能性があります。

そして、小文字の「クラスパス」に気づきました。'Class-Path'であるはずです

于 2009-05-05T12:16:29.933 に答える
0

jar ファイルをダブルクリックするか、コマンド ラインから実行すると、次のようになります。

java -jar VNCOverHTTPServer.jar

次に、jar が配置されているディレクトリに、必要な jar を含む lib フォルダーがあるはずです。これは事実ですか?

更新:エラー レポートから、URLClassLoader を使用して mysql クラスをロードしていることは明らかです。クラスパスに jar ファイルを追加しても役に立ちません。URL リンクからクラスを利用できるようにする必要があります。

于 2009-05-05T11:31:00.510 に答える