java命令操作linux指令

参考

import java.io.*;
public class Test{

public static void main(String[] args) throws Exception{
try{
Process process=Runtime.getRuntime().exec("ls ./");
InputStreamReader reader = new InputStreamReader(process.getInputStream());
LineNumberReader line = new LineNumberReader(reader);
String str;
while((str=line.readLine())!=null){
System.out.println(str);
}

}catch (Exception e){
e.printStackTrace();
}

System.out.println("done !!!");
}
} 

 

管道符
在这里插入图片描述
java操作linux移动命令mv
参考以上Process process=Runtime.getRuntime().exec(“ls ./”);
java通过Process 操作linux命令,
1.由于项目放docker容器中,测试发现没有此目录,
解决

'生成文件与移动文件的目录,配置宿主机与docker容器的映射路径,

2.又发现没有权限,由于宿主机的用户与容器内的用户不一致所致。
解决

1,查看宿主机的file文件用户组与uid,命令:id 用户名,
2,查看docker映射后的文件的用户组与uid,(id dcos)

保证容器内外的uid一致,即,把宿主机的id设置和和容器内一致,

chmod -R 1000 file

注:1000是容器内的uid
最后并重启容器,

docker start dcos

附docker进入容器

docker ps
docker exec -it -u root abc12383hsuhd sh

注意,上线后版本问题引起不兼容,修改用户后重启容器后,容器内用户改变,导致写入失败,需要重新设置宿主机用户id

Logo

更多推荐