方法一。
Process p1 = Runtime.getRuntime().exec("useradd "+username);
//不要交互
Process p2 = Runtime.getRuntime().exec("passwod "+username);
//这个过程要交互
BufferedReader in = new Buffered(new InputStreamReader(p2.getInputStream()));
OutputStreamWriter out = new OutputStreamWriter (p2.getOutputStream());
String line="";
while((line = in.readLine()) != null)
{
if(-1 !=line.indexOf("等待输入密码的提示"))
out.print(passwd+"
");
if(-1 !=line.indexOf("等待再次输入密码的提示"))
out.print(passwd+"
");
if(-1 !=line.indexOf("成功提示"))
break;
}
in.close();
out.close();
方法二
用jcraft实现sftp(转)计算机 2007-03-12 16:11:04 阅读152 评论0 字号:大中小 订阅 .
用jcraft实现sftp(转)
http://www.lugs.cn/Blog/InfoContent.aspx?UserName=ahsun&InfoID=420
转自
http://www.javaeye.com/t/17300.html
首先,我把概念澄清一下。
1. ssh terminal session, 类似于 telnet
2. sftp
3. scp
是三种不同的协议,各自有不同的命令。
只是有的sftp 同时支持 scp。
这三种和 ftp, ftps 也不同。ftp, ftps 使用 ftp 命令。
由于ganymed 对ftps 的命令支持不好,似乎不工作,我又使用了scp 命令,也同样不工作。有可能是因为 该sftp server 不支持 scp, 也有可能是ganymed的问题。
后来,只好寻找下载另一个java opensource sftp lib.
http://www.jcraft.com/jsch/
里面没有文档。debug了半天,终于找到一种写法,能够工作了。
代码
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.UserInfo;
public class TestJsch {
public static final UserInfo defaultUserInfo = new UserInfo(){
public String getPassphrase() {
return null;
}
public String getPassword() {
return null;
}
public boolean promptPassword(String arg0) {
return false;
}
public boolean promptPassphrase(String arg0) {
return false;
}
public boolean promptYesNo(String arg0) {
return true;
}
public void showMessage(String arg0) {
}
};
/**
* @param args
*/
public static void main(String[] args) throws Exception{
String hostname = "...";
String username = "...";
String password = "...";
String remoteFile = "...";
String localFile = "...";
JSch jsch=new JSch();
Session session=jsch.getSession(username, hostname, 990);
session.setPassword(password);
session.setUserInfo(defaultUserInfo);
session.connect();
Channel channel=session.openChannel("sftp");
channel.connect();
ChannelSftp c=(ChannelSftp)channel;
c.get(remoteFile, localFile);
session.disconnect();
}
}
java修改linux密码资料
4星 · 超过85%的资源 需积分: 9 182 浏览量
2011-02-21
22:52:52
上传
评论 2
收藏 246KB RAR 举报
zhangkun4884
- 粉丝: 5
- 资源: 20
最新资源
- 批量将py编译为pyd文件.atbx
- Python项目-学生管理系统
- verilog HDL硬件语法设计包括算术运算三人表决器Verilog的阻塞和非阻塞赋值源码例程quartus13.1工程合集
- 【文章话题分类论文】OpenAlex Topic Classification Whitepaper
- linux学习常用命令
- 功率拓扑快速参考指南-ti,TI官方出品
- 开关电源拓朴图表,各种电路拓扑表格
- 登录和注册 前端:vue3+iview plus +axios 后台:spring boot +mybatis
- 软件测试入门简介:从基础到实践的全面介绍
- 2024CDA Level Ⅰ 认证考试大纲
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈