我从爱马仕获得了源代码(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:错误:包org.apache.log4j不存在 等.....
在此问题中,无法找到log4j(类似dom4J,Mail等等。)
所以我在路径“/ myd1 / exete / libs /”中创建了文件夹,并在那里添加了所需的jar文件并将CLASSPATH设置为此文件夹
CLASSPATH=/myd1/exete/libs/*
但仍然会出现类路径无效的错误
我尝试将CLASSPATH添加到〜/ .bashhrc
CLASSPATH=/myd1/exete/libs/*
Export CLASSPATH
将CLASSPATH添加到gedit / etc / environment 环境| grep CLASSPATH打印正确的路径
问题是当我运行构建脚本时,它仍然会提供与类路径无法正常工作相同的错误
答案 0 :(得分:0)
您应该在ANT脚本中设置classpath:
<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文件的目录结束。上课 在命名包中的文件,类路径以该目录结束 包含“root”包(完整包中的第一个包) 名称)。多个路径条目以冒号分隔。
默认类路径是当前目录。设置CLASSPATH 变量或使用-classpath命令行选项会覆盖它 默认,因此如果要在搜索中包含当前目录 路径,你必须包括“。”在新设置中。
既不是目录也不是归档的类路径条目(.zip或.zip .jar文件)也*被忽略。
所以你应该尝试:
CLASSPATH=/myd1/exete/libs/*
or
CLASSPATH=/myd1/exete/libs
答案 1 :(得分:0)
将您的类路径设置为CLASSPATH=/myd1/exete/libs/myjar.jar
即。在CLASSPATH中命名你的jar!