0

Eclipse を使用して Java で基本的な TCP サーバーを作成しています。クライアントから特定のパケットを受信した後、MSSQL ストアド プロシージャを実行しようとしています。すべてをログに記録できますが、行を挿入しようとすると、次のエラーが表示されます。

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

解決策をグーグルで検索しようとしましたが、何も機能せず、エラーが発生し続けます。これが私のクラスパスxmlです(jarファイルがあります):

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry exported="true" kind="lib" path="/home/leandro/workspace/LHub/sqljdbc4.jar"/>
    <classpathentry exported="true" kind="lib" path="/home/leandro/workspace/LHub/sqljdbc.jar"/>
    <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

これは、挿入用の db クラスへの接続です。

package servers;

import java.sql.*;

public class LServerDBConn {

    private Statement stmt;
    private String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private String url = "jdbc:microsoft:sqlserver://192.168.x.x;databaseName=XXX";
    private String DBuser = "sa";
    private String DBpassword = "123123";

    public void connectionText(String query) throws ClassNotFoundException,SQLException {
        Class.forName(this.DriverName);

        Connection con = DriverManager.getConnection(this.url, this.DBuser, this.DBpassword);

        this.stmt = con.createStatement();

        ResultSet rs = stmt.executeQuery("EXEC SPI_TK103_PACKET" + query);
        if (rs.next()) {
            System.out.println("DBConnection success");
        } else {
            System.out.println("DBConnection failure");
        }
        con.close();
    }

}

これは私のメインクラスにあります:

LServerDBConn con = new LServerDBConn();
con.connectionText(new String(buf, 0, bytes_read));

助けてくれてありがとう。

[編集] ファイルに問題があるようです。プロジェクトはファイルを読み取っていないため、クラスを見つけることができません。JTDSで試してみましたが、同じことが起こります。私はいくつかの設定が欠けていると思います。

4

1 に答える 1

1

あなたが欠けているように見えます

sqljdbc4.jar または sqljdbc.jar

あなたのクラスパスで。

編集(クラスパスに含める方法)クラスパスは、クラスパスウィキペディアを見る必要がある1つの簡単な回答で説明するのは簡単ではありません。基本的に、クラスパスにロードするjar /リソースを探す場所をJavaアプリケーションに指示する必要があります.

Linux

Java -classpath '/home/leandro/workspace/LHub/*:' YourApp

tar.gz をダウンロードして展開し、jar を取得します Microsoftからダウンロードしてみてください

于 2013-06-18T15:59:15.847 に答える