只有在Apache Ant构建的情况下才能找到jdbc驱动程序



我有一个问题,当我用eclipse构建器编译我的项目时,一切都很好,但当我用Ant做同样的事情时,我收到错误:

java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@1.2.3.4:1521

我有

ojdbc6.jar

在"lib"中,它与"src"、"bin"等文件夹相同

<project basedir=".">
<target name="jar">
    <mkdir dir="build/jar"/>
    <jar destfile="build/jar/myTool.jar">
        <manifest>              
            <attribute name="Main-Class" value="myPackage.application"/>
        </manifest>
        <fileset dir="bin" includes="**/*.class" />
        <zipgroupfileset dir="lib" includes="**/*.jar" />
    </jar>
</target>
</project>

在我的jar文件中,我可以找到:

oraclejdbcdriver

带有.class文件的文件夹

短代码:

String url = "jdbc:oracle:thin:@" + host + ":" + port;
Properties props = new Properties();
InputStream input = new FileInputStream(getConfigurationFile());
props.load(input);
Connection conn = DriverManager.getConnection(url,props);

当我写:

<path id="antclasspath"> 
    <fileset dir="lib"> 
        <include name="ojdbc6.jar"/> 
    </fileset> 
</path> 
<sql 
    driver="oracle.jdbc.driver.OracleDriver" 
    url="jdbc:oracle:thin:@1.2.3.4:1521" 
    userid="test" 
    password="test" 
    print="yes" 
    classpathref="antclasspath"> 
    select * from devices; 
</sql> 

在build.xml文件中,它可以工作并返回正确的行,但从.jar文件启动应用程序时仍然无法工作

//编辑从我的jar中排除外部libs并将类路径添加到ant文件中的manifest解决了我的问题

您忘记设置类路径。尝试用启动你的程序

java -cp ojdbc6.jar -jar myTools.jar

请调整包含JDBC驱动程序的jar文件的路径。

在Ant中,它之所以有效,是因为您将jar文件添加到类路径中。

在调用CLI时,必须提供类路径。

使用命令行参数-jar时,必须通过命令行参数-cp提供类路径(环境变量CLASSPATH将不起作用)。

相关内容

  • 没有找到相关文章

最新更新