首先.我是Apache Ant的新手。
我试图使用它构建一个简单的java应用程序,使用Selenium Web驱动程序库。
我从教程开始: Apache的Hello (参考文献)。( http://ant.apache.org/manual/index.html)构建一个简单的"Hello“,它还解释了如何使用外部库(在示例log4J库中.)。
一切正常..。然后,我尝试更改我的第一个构建文件,以便使用Selenium Web驱动程序库在我的java应用程序中应用它。
这是我的目录组织..。

我的java源代码位于磁盘中的另一个目录中,但这不是问题所在(我认为.)
在lib目录下,我有selenium-java-2.46.0.jar,在libs子目录下,我有所有其他的selenium库,所以.

(请注意,这不是所有图书馆的完整清单.这只是为了解释我的档案组织.)。
这是我的build.xml文件..。
<project name="Bdo" basedir="." default="main">
<property name="src.dir" value="D:/Cesare/Lavoro/WorkspaceEclipse/TestSelenium/TestSeleniumProgetti/src/myProjects"/>
<property name="build.dir" value="Bdo"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="myProjects.bdoTest_01"/>
<property name="lib.dir" value="lib"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Class-Path" value="../../${lib.dir}/selenium-java-2.46.0.jar ../../${lib.dir}/libs/apache-mime4j-0.6.jar ../../${lib.dir}/libs/bsh-1.3.0.jar ../../${lib.dir}/cglib-nodep-2.1_3.jar ../../${lib.dir}/libs/commons-codec-1.10.jar ../../${lib.dir}/libs/commons-collections-3.2.1.jar ../../${lib.dir}/commons-exec-1.3.jar ../../${lib.dir}/commons-io-2.4.jar ../../${lib.dir}/libs/commons-lang3-3.4.jar ../../${lib.dir}/libs/commons-logging-1.1.3.jar ../../${lib.dir}/cssparser-0.9.16.jar ../../${lib.dir}/gson-2.3.1.jar ../../${lib.dir}/libs/guava-18.0.jar ../../${lib.dir}/libs/hamcrest-core-1.3.jar ../../${lib.dir}/hamcrest-library-1.3.jar ../../${lib.dir}/htmlunit-2.17.jar ../../${lib.dir}/libs/htmlunit-core-js-2.17.jar ../../${lib.dir}/libs/httpclient-4.4.1.jar ../../${lib.dir}/httpcore-4.4.1.jar ../../${lib.dir}/httpmime-4.4.1.jar ../../${lib.dir}/libs/jcommander-1.29.jar ../../${lib.dir}/libs/jetty-io-9.2.11.v20150529.jar ../../${lib.dir}/jetty-util-9.2.11.v20150529.jar ../../${lib.dir}/jna-4.1.0.jar ../../${lib.dir}/libs/jna-platform-4.1.0.jar ../../${lib.dir}/libs/junit-dep-4.11.jar ../../${lib.dir}/nekohtml-1.9.22.jar ../../${lib.dir}/netty-3.5.7.Final.jar ../../${lib.dir}/libs/phantomjsdriver-1.2.1.jar ../../${lib.dir}/libs/sac-1.3.jar ../../${lib.dir}/serializer-2.7.2.jar ../../${lib.dir}/testng-6.8.5.jar ../../${lib.dir}/libs/websocket-api-9.2.11.v20150529.jar ../../${lib.dir}/libs/websocket-client-9.2.11.v20150529.jar ../../${lib.dir}/websocket-common-9.2.11.v20150529.jar ../../${lib.dir}/xalan-2.7.2.jar ../../${lib.dir}/libs/xercesImpl-2.11.0.jar ../../${lib.dir}/libs/xml-apis-1.4.01.jar "/>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java fork="true" classname="${main-class}">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/${ant.project.name}.jar"/>
</classpath>
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
当我执行命令时
ant run一切都很好,我可以看到我的应用程序.
当我尝试使用以下命令执行jar时
java -jar Bdo.jar我有以下错误

我认为ClassPath出了点问题,但似乎所有的库路径都很好.
有什么建议吗?
提前谢谢你!
塞萨尔
发布于 2015-10-10 19:52:35
类路径中的某些路径不包含libs目录。gson-2.3.1.jar就是这样的路径之一。
https://stackoverflow.com/questions/33055143
复制相似问题