0

Ant 1.7.1 を使用して、Eclipse でアプリケーションをビルドしています。私のアプリケーションは WAS 6.1 にデプロイされる予定です。コードで sun.security.* パッケージ クラスとサブパッケージを使用しているため (このパッケージの使用は推奨されていませんが、他のオプションはありません)。

ear を WAS に配置したとき、sun.security.x509.AlgorithmId クラスの ClassDefNotFoundError を受け取りました。このクラスが IBM Jre の目的のパッケージに存在しないことがわかりました (これが、sun.packages の使用が推奨されない理由の一種です)。

開発クラスパスに IBM jar を配置する必要があり、Eclipse で IBM jar を JRE jar の前に配置して、ローカル JRE jar の代わりにこれらの jar を使用するようにしました (注文とエクスポート)。これはうまくいっています。

さて、私の質問は、ANTでjarの同じ順序をどのように行うかです。ANT クラスパスで jar の順序を指定する方法を知っています。しかし、IBM jar を ANT の JRE jar の前に配置するにはどうすればよいでしょうか?

ブート クラスパスに IBM jar を設定してみました。しかし、そうすると、Java クラスパスがブート クラスパスの外にあるため、ANT は java.lang を見つけることができません。

              <javac  source="1.5"
            target="1.5"
            bootclasspathref="project.class.path"
            destdir = "${build.classes.dir}"
            srcdir = "${work.dir}/src" 
            debug="true"
            encoding="UTF-8"
    >
    <classpath path="${java.library.path}"/>

    </javac>

これを行う方法をアドバイスしてください。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

0

私はこれに対する解決策を得ました。「javac」タスクに次の変更を加えました。

      <javac  source="1.5"
              target="1.5"
              destdir = "${build.classes.dir}"
              srcdir = "${work.dir}/src" 
              debug="true"
              encoding="UTF-8"
      >
       **<compilerarg value="-Xbootclasspath/p:${toString:project.class.path}"/>**
     </javac>

アリそれは働いた!

于 2013-03-10T06:16:12.050 に答える