无法找到:com / jcraft / jsch / UserInfo

时间:2012-09-10 02:02:17

标签: ant jsch

我正在尝试在构建文件中使用Ant <scp>任务。每次运行目标时都会出错:

cannot be found: com/jcraft/jsch/UserInfo

我已经阅读了一些有关Ant 1.7存在此问题的帖子。一些帖子正在谈论从ant_home lib中删除ant-jsch.jar文件。不幸的是我无法做到这一点,因为ant_home在许多其他项目中很常见,我无法从lib目录中删除或更新任何jar文件。

有没有办法可以纯粹使用Ant配置来解决这个问题?

1 个答案:

答案 0 :(得分:3)

ant-jsch.jar包含由Apache Ant团队开发的ssh相关任务,而jsch.jar包含jsch库,这是这些ssh任务的依赖。

所以请稍微检查一下:检查jsch.jar中是否有$ANT_HOME/lib,还要检查jar是否包含UserInfo.class

如果出现上述情况之一,请下载最新版本的jsch.jar并将其放入$ANT_HOME/lib

我目前正在使用Ant 1.8.4并且去年下载jsch.jar没有任何问题。


更新

首先检查此页面:

http://ant.apache.org/manual/install.html#optionalTasks

请注意,默认情况下,<scp>和其他ssh任务(ant-jsch.jar)包含在Ant二进制分发版中。您不需要编写<taskdef>来使用<scp>,因为它默认包含在Ant的lib目录中。我建议您将jsch.jar放在该目录中,并注明以下几点:

  1. 这些ssh任务不支持classpath def,也就是说,你不能定义指向<classpath>的{​​{1}},然后在ssh任务中引用它。
  2. 此外,您可以将jsch.jar放在系统的CLASSPATH环境变量中包含的任何目录中,但这不是一个好习惯。
  3. 我们通常将任务及其依赖项放在同一目录中。