无法从ant编译但是从命令行工作,为什么?

时间:2013-03-12 00:10:39

标签: java eclipse ant payment-gateway

我无法在蚂蚁和日食中为我的项目提供课程。

我正在使用eclipse juno + wpt ant 1.7

我正在将委内瑞拉一家名为CrediCard的信用卡公司的支付平台整合到一个已经在工作的网站上。

我们收到了一个.zip包,其中包含以下内容:

package structure received by bank

我使用debian开发,因为编译和运行项目我们被银行所接受,我们需要一个依赖项:

libc6.1-1.so.2

项目运行需要,我真的不明白。 也因为生产操作系统也没有debian。

该软件包有一个名为ejemplodigest.java的源代码示例,其中包含如下编译代码的说明:

javac -classpath /home/DigestJavaLinux/classes ejemplodigest.java

并按照以下方式运行:

java -Djava.library.path=/home/DigestJavaLinux/lib/ -classpath /home/DigestJavaLinux/:/home/DigestJavaLinux/classes ejemplodigest

这些命令在命令行上运行完美。要运行它,必须在debian中安装依赖项 libc6.1-1.so.2

当我在项目中包含相应的行并将类路径添加到ant的javac任务时,我甚至无法使用ant编译代码。我收到了错误

symbol  : class OasisEMSecIm
    [javac] location: class com.bamboo.catW3.business.impl.MainHtmlController
    [javac]          OasisEMSecIm digest= new OasisEMSecImp();

在类的声明和导入中:

import OasisEM.*;
import eMerchantServlet.*;
找不到

OasisEM does not exist.

这是给出的示例来源:

//import OasisEM.*;
import java.*;
// import eMerchantServlet.*;

class ejemplodigest {
    public static void main(String args[]) {
        String varMerchant = "00260364";        // Merchant ID
        String varStore = "0";                  // Store ID
        String varTerm = "4001";                // Term ID
        String varTotal = "12345445";           // Monto de Transaccion
        String varCurrency = "937";             // Codigo de Moneda
        String varOrder_id = "444444";          // Order Id
        String varDigest;                       // Valor de Digest


        OasisEMSecImp digest= new OasisEMSecImp();
        varDigest = digest.getDigest(varTotal,varOrder_id,varMerchant,varStore,varTerm,varCurrency);

        System.out.println ("Merchant ID :" + varMerchant);
        System.out.println ("Store ID :" + varStore);
        System.out.println ("Term ID :" + varTerm);
        System.out.println ("Total :" + varTotal);
        System.out.println ("Currency :" + varCurrency);
        System.out.println ("Order ID :" + varOrder_id);
        System.out.println ("Digest " + varDigest);

    }
}

我也无法让Eclipse识别它们,我尝试将类文件夹添加到Eclipse中,使类成为jar并添加它。

我检查了ant任务正确接收的路径,所有其他依赖项都正常工作。

ANT问题:为什么示例源使用命令行进行编译,但是在将相同的行添加到项目中的方法并将类路径添加到类文件夹时,它不会编译?

Eclipse问题:如何让Eclipse识别出类OasisEMSecImp?

更新

你好,ant文件有点长,我怎么会粘贴我认为相关的部分:

<path id="library.digest.classpath">
            <pathelement location="../../digest/classes"/>
        </path>

 <path id="catw.module.classpath">
        <path refid="library.blazeds.classpath"/>
        <path refid="library.hibernate3.classpath"/>
        <path refid="library.jta.classpath"/>
        <path refid="library.log4j.classpath"/>
        <path refid="library.mail.classpath"/>
        <path refid="library.oreilly.classpath"/>
        <path refid="library.spring-2.0.7.classpath"/>
        <path refid="library.velocity.classpath"/>
        <path refid="library.jexcel.classpath"/>
        <path refid="library.tomcat_5.classpath"/>
        <path refid="library.digest.classpath" />
        <pathelement location="../catw-common/build/catw-common.jar"/>
    </path>


<javac destdir="${catw.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true">
            <compilerarg line="${compiler.args.catw}"/>
            <bootclasspath refid="catw.module.bootclasspath"/>
            <classpath refid="catw.module.classpath"/>
            <src refid="catw.module.sourcepath"/>
            <patternset refid="excluded.from.compilation.catw"/>
        </javac>

我调试了catw.module.classpath并且位置正确。

非常感谢你。

2 个答案:

答案 0 :(得分:0)

我认为你没有正确设置你的蚂蚁路径。您在路径元素中使用相对路径。因此,请确保您的项目基础设置正确。对于一些有用的提示,您可能还需要将详细信息设置为true。

答案 1 :(得分:0)

我已经理解了这个问题并为我的情况找到了解决办法,我在我的answer in this question中解释了这个问题。

希望它有所帮助。