0

我从 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: 错误: 包 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 Env | grep CLASSPATH 打印正确的路径

问题是当我运行构建脚本时,它仍然给出与类路径不起作用相同的错误

4

2 回答 2

0

您应该在 ANT 脚本中设置类路径:

<path id="common.classpath">
    <fileset dir="/myd1/exete/libs">
        <include name="*.jar"/>
    </fileset>
</path>

或者

CLASSPATH根据http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/classpath.html设置:

classpath1:classpath2 .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-20T12:10:53.357 回答
0

将您的类路径设置为CLASSPATH=/myd1/exete/libs/myjar.jar

即在 CLASSPATH 中命名你的 jar!

于 2013-05-20T13:38:18.117 回答