web-dev-qa-db-ja.com

ANT-依存クラスcom / jcraft / jsch / Loggerを読み込めませんでした

Antスクリプトに問題があります。

Linuxサーバーにファイルをコピーする必要があります

<copy file="../Ant/lib/jsch-0.1.50.jar" tofile="${ant.home}/lib/jsch-0.1.50.jar" />

<scp todir="${server.user}:${server.password}@${server.dev}:${server.dev.dir.config}" trust="true" verbose="true">
    <fileset dir="${src.home}/Config/">
        <include name="**/*" />
    </fileset>
</scp>

ファイルは正しくコピーされますが、次のエラーが表示されます。

BUILD FAILED
C:\dev.xml:179: Problem: failed to create task or type scp
Cause: Could not load a dependent class com/jcraft/jsch/Logger
       It is not enough to have Ant's optional JARs
       you need the JAR files that the optional tasks depend upon.
       Ant's optional task dependencies are listed in the manual.
Action: Determine what extra JAR files are needed, and place them in one of:
    -C:\Progs\Eclipse\plugins\org.Apache.ant_1.8.3.v201301120609\lib
    -C:\Users\Administrator\.ant\lib
    -a directory added on the command line with the -lib argument

このJARをAntクラスローダーに動的に追加するにはどうすればよいですか?

10
kete nefrega

例外自体は非常に明確であり、問​​題の理由を示しています。

Action: Determine what extra JAR files are needed, and place them in one of:
    -C:\Progs\Eclipse\plugins\org.Apache.ant_1.8.3.v201301120609\lib
    -C:\Users\Administrator\.ant\lib
    -a directory added on the command line with the -lib argument

ライブラリの依存関係 から確認してください

jsch.jar 0.1.50以降:sshexecおよびscpタスク( http://www.jcraft.com/jsch/index.html

このlibをantlibにコピーすると、スタンドアロンAntの問題が解決します。

Eclipseの場合:[クラスパス]タブの[Ant/Runtime]エントリの[Eclipse設定]に移動します。 「外部Jarの追加」ボタンを使用して、jsch.jarをAntのクラスパスに追加します。

11
Exploring

私は解決策を見つけました ここ

2
VincentLamoute

EclipseをIDEとして使用し、Eclipseからantを実行する場合、必要なjarファイルjsch-0.1.51.jar(または任意のバージョン)をコピーするのに十分ではありません。また、を変更する必要があります。 classpathantは実行時に使用します。

Windows->ウィンドウ>設定> Ant>ランタイムを使用する場合Mac-> Eclipse>設定> Ant>ランタイムを使用する場合

[Antホームエントリ...]の[クラスパス]タブで、新しいjarを追加する必要があります。

その後、それは動作します。

1
buttcmd

同様の<copyタグを使用して、JSCHのすべての依存関係をANTのlibディレクトリに追加します。

JSCHの依存関係を見つけるには、そのドキュメントを確認してください。

0
AlexR

Jsch-0.1.51.jarを/ usr/share/ant/lib /(または任意のディレクトリ)にコピーした後、rootだけでなくすべてのユーザーがJARファイルを読み取り可能にします。私のようになってはいけません。なぜそれが機能しないのかを理解するために30分を費やしてください。

0
Torben