Jsch 抑制:java.lang.ClassNotFoundException:Lorg.ietf.jgss.Oid
Jsch Suppressed: java.lang.ClassNotFoundException: Lorg.ietf.jgss.Oid
出于某种原因,升级到 Lollipop (5.0.2) 后,jsch 停止工作。我收到这个错误。
Caused by: java.lang.ClassNotFoundException: Didn't find class
"Lorg.ietf.jgss.Oid" on path: DexPathList[[zip file"/data/app
/com.**-1/base.apk"],nativeLibraryDirectories= [/vendor/lib,
/system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 14 more
Suppressed: java.lang.ClassNotFoundException: org.ietf.jgss.Oid
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the
boot class loader; no stack available
这是我的代码。
try {
JSch jsch = new JSch();
session = jsch.getSession(userName, remoteHost, port);
session.setPassword(userPassword);
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
} catch (Exception ex) {
ex.printStackTrace();
session.disconnect();
}
我检测到问题出现在添加属性“StrictHostKeyChecking”时,然后程序在执行“[=30”时关闭=]()”。
如果我省略这个属性,程序不会失败,但无法连接。
有什么想法吗?
谢谢。
我遇到了同样的问题。问题是由于找不到与 GSS-API 一起使用的 Lorg.ietf.jgss.Oid。我发现这可以通过首选密码身份验证来避免:
try {
JSch jsch = new JSch();
session = jsch.getSession(userName, remoteHost, port);
session.setPassword(userPassword);
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.setConfig("PreferredAuthentications",
"password"); //add this line to your code
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
} catch (Exception ex) {
ex.printStackTrace();
session.disconnect();
}
出于某种原因,升级到 Lollipop (5.0.2) 后,jsch 停止工作。我收到这个错误。
Caused by: java.lang.ClassNotFoundException: Didn't find class
"Lorg.ietf.jgss.Oid" on path: DexPathList[[zip file"/data/app
/com.**-1/base.apk"],nativeLibraryDirectories= [/vendor/lib,
/system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 14 more
Suppressed: java.lang.ClassNotFoundException: org.ietf.jgss.Oid
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the
boot class loader; no stack available
这是我的代码。
try {
JSch jsch = new JSch();
session = jsch.getSession(userName, remoteHost, port);
session.setPassword(userPassword);
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
} catch (Exception ex) {
ex.printStackTrace();
session.disconnect();
}
我检测到问题出现在添加属性“StrictHostKeyChecking”时,然后程序在执行“[=30”时关闭=]()”。
如果我省略这个属性,程序不会失败,但无法连接。
有什么想法吗?
谢谢。
我遇到了同样的问题。问题是由于找不到与 GSS-API 一起使用的 Lorg.ietf.jgss.Oid。我发现这可以通过首选密码身份验证来避免:
try {
JSch jsch = new JSch();
session = jsch.getSession(userName, remoteHost, port);
session.setPassword(userPassword);
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.setConfig("PreferredAuthentications",
"password"); //add this line to your code
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
} catch (Exception ex) {
ex.printStackTrace();
session.disconnect();
}