0

ant と eclipse の両方で、プロジェクトでクラスを使用できるようにするのに問題があります。

私は eclipse juno+wptant 1.7を使用しています。

ベネズエラの CrediCard というクレジット カード会社の支払いプラットフォームを、既に稼働しているサイトに統合しています。

以下を含む .zip パッケージを受け取りました。

銀行が受け取るパッケージ構造

私は開発にdebianを使用しています。プロジェクトをコンパイルして実行するには、銀行から次の依存関係が必要であると指示されました。

libc6.1-1.so.2

プロジェクトを実行するために必要ですが、よくわかりません。また、本番OSもdebianではないためです。

このパッケージには、ejemplodigest.java というソースの例が含まれており、次のようにコンパイルする手順が示されています。

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

そして、次のように実行します。

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

これらのコマンドは、コマンド ラインで完全に実行されます。これを実行するには、依存関係libc6.1-1.so.2を debian にインストールする必要があります。

プロジェクトに対応する行を含め、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 をデバッグしましたが、場所は正しいです。

事前にどうもありがとうございました。

4

2 に答える 2

0

アリの進路を正しく設定していなかったと思います。path要素で相対パスを使用します。したがって、プロジェクトのベースが正しく設定されていることを確認してください。また、役立つヒントを得るために、冗長をtrueに設定する必要がある場合もあります。

于 2013-03-12T00:38:47.037 に答える
0

私は問題を理解し、自分の状況の回避策を見つけました。この質問の回答で説明します。

それが誰かを助けることを願っています。

于 2013-03-26T16:36:29.133 に答える