我从爱马仕(hermes2_src_20100121)那里得到了源代码。当我解压它的时候,它有大约10个文件夹,它们是独立的项目。
/myd1/Exetel/Hermes_SRC/ebxml-pkg
/myd1/Exetel/Hermes_SRC/CorvusEbMS
/myd1/Exetel/Hermes_SRC/Commons
Etc….
Each project has its own build script
/myd1/Exetel/Hermes_SRC/ebxml-pkg/ant/build.xml
/myd1/Exetel/Hermes_SRC/CorvusEbMS/ant/build.xml
/myd1/Exetel/Hermes_SRC/Commons/ant/build.xml
Etc….我需要使用给定的ant脚本构建这10个项目,当我运行它时,脚本失败,它给出了编译错误/myd1/Exetel/Hermes_SRC/ebxml-pkg/src/hk/hku/cecid/ebms/pkg/PKISignatureImpl.java:98:错误: package org.apache.log4j不存在等.....
此问题中,找不到log4j (类似的dom4J、邮件等…。)
因此,我在路径“/myd1/exete/libs/”中创建了文件夹,并在其中添加了所需的jar文件,并将CLASSPATH设置为该文件夹
CLASSPATH=/myd1/exete/libs/*但是,它仍然会给出同样的错误,因为类路径不工作
我尝试将CLASSPATH添加到~/.bashhrc
CLASSPATH=/myd1/exete/libs/*
Export CLASSPATH将CLASSPATH添加到gedit /etc/environment Env | grep CLASSPATH打印正确的路径
问题是,当我运行构建脚本时,它仍然给出同样的错误,因为类路径不工作
发布于 2013-05-20 20:10:53
您应该在ANT脚本中设置类路径:
<path id="common.classpath">
<fileset dir="/myd1/exete/libs">
<include name="*.jar"/>
</fileset>
</path>或
根据http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/classpath.html设置CLASSPATH
类路径1:类路径2指向.jar、.zip或.class文件的类路径。每个类路径都应该以文件名或目录结尾,具体取决于您将类路径设置为什么:对于包含.class文件的.jar或.zip文件,类路径以.zip或.jar文件的名称结尾。对于未命名包中的.class文件,类路径以包含.class文件的目录结束。对于命名包中的.class文件,类路径以包含“根”包的目录(完整包名称中的第一个包)结束。多个路径条目用冒号分隔。
默认的类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项会覆盖该缺省值,因此如果要在搜索路径中包含当前目录,则必须包含“。在新的设置中。
既不是目录也不是档案(.zip或.jar文件)或*的类路径条目将被忽略。
因此,您应该尝试以下两种方法:
CLASSPATH=/myd1/exete/libs/*
or
CLASSPATH=/myd1/exete/libs发布于 2013-05-20 21:38:18
将类路径设置为CLASSPATH=/myd1/exete/libs/myjar.jar
例如,在CLASSPATH中命名您的jar!
https://stackoverflow.com/questions/16648634
复制相似问题