2017-03-06 82 views
0

这是一个重复的问题,我知道。ClassNotFoundException for com.microsoft.sqlserver.jdbc.SQLServerDriver

但所有这些问题似乎都与我的无关,或者他们已经过时了。

步骤我已经做了我已经从以前的SO问题和其他资源

1.Download sqljdbc驱动程序并将其添加到类路径中的经验教训。我留了个

C:\projects\tomcat\webapps\testingfiles\java_files>echo %CLASS_PATH% 
C:\projects\tomcat\lib;C:\xampp\tomcat\lib;C:\Program Files\Java;C:\Program Files\Java\jre1.8.0_112;C:\Program Files\Java\jdk1.8.0_112;C:\projects\tomcat\webapps\testingfiles\WEB-INF\lib\sqljdbc4-3.0.jar 
  1. 这里是我的示例代码

    import java.sql.DriverManager; 
    import java.sql.Connection; 
    import java.sql.ResultSet; 
    import java.sql.SQLException; 
    import java.sql.Statement; 
    
    public class Main { 
    
         public static void main(String[] args) throws SQLException, ClassNotFoundException { 
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
          Connection conn = DriverManager.getConnection("jdbc:sqlserver://grddwmrtwhqipdw;user=ipdwro;password=readonly;database=IPDW_Prod02"); 
          System.out.println("test"); 
          Statement sta = conn.createStatement(); 
          String Sql = "select * from testing_table"; 
          ResultSet rs = sta.executeQuery(Sql); 
          while (rs.next()) { 
           System.out.println(rs.getString("txt_title")); 
          } 
         } 
        } 
    
  2. 这里是我的例外

C:\ projects \ tomcat \ webapps \ testingfiles \ java_files> ja VA主要的例外 在线程 “主要” 抛出java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

在java.net.URLClassLoader.findClass(未知来源)

在java.lang中。 ClassLoader.loadClass(来源不明)

在sun.misc.Launcher $ AppClassLoader.loadClass(来源不明)

在java.lang.ClassLoader.loadClass(来源不明)

在java.lang.Class.forName0(本机方法)

在java.lang.Class.forName(来源不明)

在Main.main(Main.java:10)

PS请不要低估这个问题,因为它是重复的,我已经搜索了大部分SO问题,并且他们中没有一个实际上对我的理由有帮助,谢谢!

+0

你不能这样做。您只是将这个lib保存在'WEB-INF \ lib'中。当tomcat启动时,然后lib被加载。但是现在你使用'main'函数来启动你的应用程序,那么'ClaasLoade'将不会加载这个库。你需要使用'Junit'来测试你的应用程序。 – JonahCui

+1

根据https://docs.oracle.com/javase/tutorial/essential/environment/paths.html,CLASSPATH是有效的名称。顺便说一句,它是更好的设置每个应用程序的类路径,像这样java -classpath C:\ java \ a.jar; C:\ java \ b.jar com.test.YourMainClass – PWC

+0

@JonahCui启动tomcat与这个问题无关,我只是将它们存在未来的手段。 –

回答

0

你把'sqljdbc4-3.0.jar'放在你项目的lib文件夹中并部署了吗? 如果是,请尝试将JAR放入TOMCAT的LIB文件夹“C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ lib”中并检查一次。

相关问题