gpt4 book ai didi

java - 通过 JSch 在 SFTP 服务器上创建目录时出现 NoSuchAlgorithmException

转载 作者:行者123 更新时间:2023-12-02 04:57:46 25 4
gpt4 key购买 nike

我正在使用 JSch 将文件通过 SFTP 传输到我的服务器。

在 Rational Application Developer (RAD) 中,一切都按预期工作。

在 RAD 之外,通过 bat 文件运行,我连接到 SFTP 服务器没有任何问题,但在尝试创建目录时收到以下错误消息:

com.jcraft.jsch.JSchException: Session.connect: java.security.NoSuchAlgorithmException: DH KeyPairGenerator not available

我的 RAD jdk 中有哪些在通过 bat 文件运行时我的机器上没有的内容?显然,它可以创建连接,以便我的bat文件可以访问jsch-0.1.51.jar,但它在我的C:\Progra~1\Java\jre6\bin中缺少一些其他jar 包含在 RAD jre 中。

最佳答案

你确定吗

  • 您的 JDK 有包含 KeyPairGenerator 类的 JAR 文件之一(见下文)?
    我在下面记录了哪些 JAR 文件包含此类。
  • CLASSPATH 设置为包含上述 JAR 文件之一的路径?
  • 您的 JAVA_HOME 设置了吗?

根据 findJAR.com,KeyPairGenerator 类包含在这些 JAR 文件中:

rt.jar
org.osgi.foundation-1.0.0.jar
org.osgi.foundation-1.2.0.jar

我搜索了rt.jar:

  • rt.jar 文件位于我的 ANT lib 目录中。
  • rt.jar 文件也位于我的 JDK 目录的 jre/lib 子目录中。

如果您在任何地方都没有包含 JAR 文件,请尝试将 ANT lib 目录添加到您的 CLASSPATH。


此测试 ANT 项目可用于验证 SSH 是否正常工作:

    <?xml version="1.0" encoding="windows-1252" ?>
<project name="ServerSSH" default="dist" basedir=".">
<target name="dist">
<echo message="TEST BEGINNING"></echo>
<sshexec host="svr1"
username="user1"
description="Test connection"
keyfile="c:/.ssh/id_rsa"
trust="true"
command="echo CONNECTION SUCCESS FOR SERVER SVR1"
failonerror="true"/>

<echo message="TEST END"></echo>

</target>

</project>

可以按如下方式调用此测试:

    set JAVA_HOME=c:\progra~1\Java\jdk1.7.0_21
set ANT_HOME=C:\ant
set ANTLIB=c:\ant\lib
set PATH=%ANT_HOME%\bin;%ANT_HOME%\lib;
ant -d -lib %ANTLIB% dist -f SSHTEST.xml

通过运行测试,您可以验证 JAVA 的 SSH 是否可以在项目之外工作。

关于java - 通过 JSch 在 SFTP 服务器上创建目录时出现 NoSuchAlgorithmException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com