这是一个重复的问题,我知道。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
这里是我的示例代码
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")); } } }
- 这里是我的例外
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问题,并且他们中没有一个实际上对我的理由有帮助,谢谢!
你不能这样做。您只是将这个lib保存在'WEB-INF \ lib'中。当tomcat启动时,然后lib被加载。但是现在你使用'main'函数来启动你的应用程序,那么'ClaasLoade'将不会加载这个库。你需要使用'Junit'来测试你的应用程序。 – JonahCui
根据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
@JonahCui启动tomcat与这个问题无关,我只是将它们存在未来的手段。 –