【发布时间】:2017-07-26 09:22:46
【问题描述】:
我在 Eclipse 安装 (Windows10) 上创建了一个 .jar 文件,我需要将其导出到 Linux 服务器以执行 Java 程序。
.jar 是用 ANT 构建的,我在其中指定了两个 .jar 库:
- 一个用于我需要使用的特定类;
- 另一个是 ojdbc6.jar jar,我需要获取驱动程序(它允许我连接到 Oracle 数据库)。此类连接适用于本地计算机,并以安装在 Linux 环境中的 Oracle 12.c 数据库为目标。
这两个 .jar 被列在 build.xml 文件中,该文件是用 ANT 构建的。
当我将文件导入 Linux 环境时 - 在 IBM Infosphere Datastage 的安装中 - 此类软件会识别文件和编译的类,因为其中一个具有我正确调用的公开方法。
这是导致错误的类(它适用于 Windows 10、Windows 7 Eclipse 环境)。
public static void loadDriver(){
try {
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
} catch (SQLException e) {
System.out.println("*** DriverManager error: driver not found ***");
e.printStackTrace();
}
}
我在 Linux 上发现的错误是:java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 当我执行包含在 try 子句中的命令时出现的错误。它适用于 Windows7 和 Window10(本地机器)。
我哪里错了?
更多细节。这是构建类路径:
<path id="myproject.classpath">
<pathelement location="bin"/>
<pathelement location="lib/ojdbc6.jar"/>
<pathelement location="lib/ccjava-api.jar"/>
</path>
当我解压 .jar 文件时,我(在其他文件中)有 lib 文件夹,其中包含两个库 ojdbc6.jar 和 ccjava-api.jar
【问题讨论】:
-
你为什么要调用 registerDriver?你不应该在你的代码中调用它,因为它在最新的 jdbc apis 中自动完成..
-
ClassNotFoundException表示在 Linux 服务器上运行时,类路径中没有 ojdbc6.jar。确保 jar 文件位于正确的位置。 -
嗨@Jesper,我将 ojdbc6.jar 放入 lib 文件夹。此外,我将此代码放入 build.xml 文件
怎么了? -
在您的 Ant 构建文件中,或在您编译代码时在类路径中拥有它并不重要。它也需要在 runtime 时位于 Linux 服务器上的正确位置。
-
@Jesper:问题解决了!我需要将两个配置文件放在 Datastage 安装文件夹中,目标是在我的 .jar 中使用的 Java 类。感谢您的帮助