java.lang.ClassNotFoundException异常

时间:2013-09-06 10:28:24

标签: java android jdbc

我正在使用android进行SqlServer2008 r2连接。

我的代码如下:

public class MainActivity extends Activity {


    String url="jdbc:sqlserver://localhost;instance=14GRAFICALI\\MSSQLSERVER2008;databaseName=AndroidDB;integrated security=true";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        TextView tvData=(TextView)findViewById(R.id.tvSelectedData);

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
            Connection conn =DriverManager.getConnection(url);                   

            System.out.println("connected");
            Statement statement=conn.createStatement();
            ResultSet resultSet=statement.executeQuery("select * from AndroidDB");
            while(resultSet.next()){
                tvData.setText(" Data1 : "+resultSet.getString(1)+"  Data 2 : "+resultSet.getNString(2));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

此代码无法正常运行并在线提供错误:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

错误:

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

但是当我检查这条路径时,文件就在上面有路径。

看看它:

enter image description here

可能是什么问题?

请帮帮我。

修改

Javabuildpath:enter image description here

利布斯:

enter image description here

4 个答案:

答案 0 :(得分:1)

确保在类路径中包含SQLServerDriver类的jar按[{3}}解释。

如果您正在使用Eclipse,请右键单击您的项目,然后右键单击Libraries选项卡下的Java Build Path,检查jar是否存在且不存在同一jar的其他版本。

答案 1 :(得分:1)

根据this thread on the microsoft msdn forum使用不同的JDBC驱动程序应该可行。我自己没有测试过。

答案 2 :(得分:1)

CLASSPATH变量是Java虚拟机(JVM)用于在计算机上查找JDBC驱动程序的搜索字符串。如果您的CLASSPATH变量中未列出驱动程序,则在尝试加载驱动程序时会收到以下错误消息: java.lang.ClassNotFoundException:com / microsoft / jdbc / sqlserver / SQLServerDriver

JDBC驱动程序不是Java SDK的一部分。如果要使用它,则必须将类路径设置为包含sqljdbc.jar文件或sqljdbc4.jar文件。如果类路径缺少sqljdbc.jar或sqljdbc4.jar的条目,则应用程序将抛出常见的“未找到类”异常。

sqljdbc.jar文件和sqljdbc4.jar文件安装在以下位置:

<installation directory>\sqljdbc_<version>\<language>\sqljdbc.jar
<installation directory>\sqljdbc_<version>\<language>\sqljdbc4.jar

以下是用于Windows应用程序的CLASSPATH语句的示例:

CLASSPATH =.;C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc.jar 

以下是用于Unix / Linux应用程序的CLASSPATH语句的示例:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_4.0/enu/sqljdbc.jar 

您必须确保CLASSPATH语句仅包含一个用于SQL Server的Microsoft JDBC驱动程序,例如sqljdbc.jar或sqljdbc4.jar。

答案 3 :(得分:0)

当我们将Android连接到SQLServer时,有一些步骤需要愚蠢。

我已经在这里提到了我的答案中的每一个详细步骤:

Class not found although particular jar is added in project (android to sqlserver without webservice)

请按照各个阶段进行操作,我相信您将克服所有错误。