我是JDBC的新手,刚刚在Eclipse中创建了我的第一个程序。我使用Oracle 11g XE作为数据库。我已将ojdbc6.jar
添加到我的类路径中,方法是将其复制到jdk安装的lib文件夹中。这是我的代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
/**
* @param args
*/
String url = "jdbc:oracle:thin:@Voldemort:1521:XE";
String username = "surender";
String password = "oracle";
Statement stmt;
String query;
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test().work();
}
void work() {
try {
Connection conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
query = "SELECT * FROM employees";
ResultSet rset = stmt.executeQuery(query);
while(rset.next()) {
System.out.println(rset.getInt(1) + " " + rset.getString(2) + " " + rset.getString(3) + " " + rset.getString(4));
}
}
catch(SQLException se) {
System.out.println("Exception!!");
se.printStackTrace();
}
}
}
现在由于某种原因它在Eclipse中不起作用,也没有在IDE中通过命令提示符运行它(我在Windows 7上)。但是当我在eclipse中将ojdbc6.jar
添加到项目构建路径时,它在eclipse中运行良好,但正如预期的那样仍然无法在提示符下运行。
我在网上看了几个教程,他们都提到需要将驱动程序文件添加到类路径中,但没有别的。 (我只是随心所欲地将ojdbc6.jar
添加到构建路径中,有点像吻并告诉:p)。
现在,这是为什么?
构建路径中需要添加哪些资源?
如果我想在IDE之外运行我的项目,我该怎么做?
提前Thanx!
答案 0 :(得分:2)
经验法则>>每个依赖jar文件都需要添加到classpath中。 ie: JDBC驱动程序或任何其他依赖jar。
在eclipse中,只有在将ojdbc6.jar添加到eclipse项目类路径后才可以运行项目,因为我们的经验法则是这样说的。
现在,如果要从命令行运行项目,则应用相同的规则。为此,您需要在运行Java程序时指定所有相关的jar文件。
即: java -classpath ojdbc6.jar . package.classname
答案 1 :(得分:0)
为了能够使用JDBC驱动程序(或任何其他Java库),它需要位于类路径上。当从Eclipse中执行应用程序时,Eclipse构建路径用作类路径。
要在IDE外部运行它,您需要确保在运行它时指定类路径。这可以使用:
完成java -cp yourlib.jar;ojdbc6.jar name.of.your.MainClass
(这假设yourlib.jar和ojdbc6.jar都在当前工作目录中,在linux上使用:
而不是;
)
或者,如果您使用的是可执行jar,则需要确保ojdbc6.jar包含在MANIFEST.MF
条目Class-Path
中,例如:
Class-Path: ojdbc6.jar
现在您可以将可执行jar运行为:
java -jar yourlib.jar
(假设所有其他内容 - 例如MainClass
中的MANIFEST.MF
设置正确)