我从Hermes获得源代码(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: error: package org.apache. javaLog4j不存在等等…
这个问题,log4j找不到(类似dom4J, Mail等....)
所以我在路径"/myd1/exete/libs/"中创建了一个文件夹,并在那里添加了所需的jar文件,并将CLASSPATH设置为该文件夹
CLASSPATH=/myd1/exete/libs/*
,但它仍然给出相同的错误,因为类路径不工作
我尝试添加CLASSPATH到~/.bashhrc
CLASSPATH=/myd1/exete/libs/*
Export CLASSPATH
在/etc/environment中添加CLASSPATHEnv | grep CLASSPATH打印正确的路径
问题是当我运行构建脚本时,它仍然给出与类路径不工作相同的错误
您应该在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
classpath1:classpath2 .jar、.zip或. Class文件的类路径。每个类路径应该以文件名或目录结尾,具体取决于要设置的类路径:对于.jar或.zip文件包含.class文件,类路径以.zip文件的名称结束或.jar文件。对于未命名包中的.class文件,类路径以包含.class文件的目录结束。. class的文件在命名包中,类路径以所指定的目录结束包含"根"包(完整包中的第一个包)名字)。多个路径条目用冒号分隔。
默认的类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项将覆盖该变量默认的,所以如果您想在搜索中包含当前目录
既不是目录也不是存档(.zip或.zip)的类路径条目
所以你应该试试:
CLASSPATH=/myd1/exete/libs/*
or
CLASSPATH=/myd1/exete/libs
设置类路径为CLASSPATH=/myd1/exete/libs/myjar.jar
。在CLASSPATH中命名你的jar !