我正在尝试使用jtds jdbc driver连接到SQL Server。以下是代码
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
this.conn = DriverManager.getConnection(
connectString, username, password);
System.out.println("connected");
}
catch (Exception e) {
e.printStackTrace();
}
程序包编译但是当我尝试使用终端
中的以下命令运行它时java -cp .:jtds-1.2.5.jar org.kodeplay.migration.TestConnection
它仍会抛出ClassNotFoundException。所以这似乎不是正确的方法。怎么做?
我已经在类路径目录中复制了jtds-1.2.5.jar文件 在ubuntu桌面上的/ etc / environment文件中指定
修改:它打印的完整异常如下
java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.kodeplay.migration.SqlDb.connect(SqlDb.java:21)
at org.kodeplay.migration.TestConnection.main(TestConnection.java:13)
答案 0 :(得分:2)
我已将jtds-1.2.5.jar文件复制到类路径目录中,该目录在ubuntu桌面上的/ etc / environment文件中指定
为什么呢?在命令行上指定在当前目录中查找该文件。
任何环境变量(在/etc/environment
或其他任何地方设置)仅在不在命令行上手动指定类路径时使用(执行时也会忽略它们) jar文件!)。