方法一。
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 166 浏览量
2011-02-21
22:52:52
上传
评论 2
收藏 246KB RAR 举报
zhangkun4884
- 粉丝: 5
- 资源: 20
最新资源
- 基于C++实现二叉树的创建,遍历,添加,查找与删除
- 基于C语言实现二叉树的基本操作
- 毕业设计基于STM32的测量温度与压力的数据处理设计C语言完整源码+论文.zip
- 基于MATLAB的PCA算法人脸识别项目源码+GUI界面+说明文档.zip
- 基于STM32的测量温度与压力的数据处理设计源码+论文(毕业设计).zip
- Vision Transformer 网络对不同氨气氧气浓度轨迹RAS 图像数据集的分类,包含训练权重和数据集、迁移学习
- 基于C51带字库LCD12864(ST7920)的keil工程源码,只支持8位并口通讯(不支持串口),可显示中文.zip
- 基于SI4463射频模块433MD-SMA无线模块软硬件技术资料及(SI4463)IC技术资料文档.zip
- (GPS+北斗+GSM)HLK-GS2503模块软硬件开发资料包硬件参考设计(原理图PCB)+技术文档资料.zip
- 基于BERT+Biaffine结构的关系抽取模型源码+文档说明.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈