在其他计算机上的jar中找不到Oracle驱动程序

时间:2012-06-11 19:57:02

标签: java oracle jar

我正在尝试导出包含ojdbc14.jar的jar文件,以允许在我的机器外执行。我可以成功地使用我的jar的当前导出,但仅在我的计算机上,当其他人尝试失败时出现错误:java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver当它试图调用Class.forName

我在SO方面看到了许多类似的问题,但没有一个问题似乎有确切的问题,解决方案也没有用。

类别:

InputStream inputStream = JdbcConnection.class.getClassLoader().getResourceAsStream("properties/jdbc.properties");

    try {

        PROPERTIES.load(inputStream); //Load the jdbc properties


        //System.out.println(properties.getProperty("jdbc.driverClassName"));  <-- this prints out the correct output`
        Class.forName(PROPERTIES.getProperty("jdbc.driverClassName")).newInstance(); //Load the oracle driver

清单:(我的ojdbc14.jar位于lib中,但是如果只包含“ojdbc14.jar”,jar只能在我的本地机器上运行,其他的jar没有提供的路径问题,不确定这是否重要)

Manifest-Version: 1.0
Main-Class: JdbcConnection
Class-Path:  lib/ojdbc14.jar ojdbc14.jar extrsrcs/kxml2-2.3.0.jar extrsrcs/xstream-1.4.2.jar src/properties/jdbc.properties

更新

This question更好地解释了我如何解决我的问题,因为它与Jar-within-Jars,可执行jar等有关。

1 个答案:

答案 0 :(得分:1)

我认为你不能在罐子里包含其他罐子(这是你想要做的不是吗?) 我怀疑它正在你的机器上工作,因为ojdbc14.jar在你的类路径上某处(即作为独立文件,而不是包含在你的jar中)

希望这会有所帮助 森