我的代码如下:
public static void main(String args[]) {
try{
String[] arguments = new String[] {"rm","-rf", "/home/test1"};
Process proc = new ProcessBuilder(arguments).start();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
我将这个文件复制到名为“java-project”的docker容器中,并使用以下命令编译/执行它:
docker exec -i java-project bash -c "cd /tmp; cat > $1.java;javac $1.java;java $1" < /tmp/$1.java
docker容器有一个文件夹“/ home / test1”,但是当使用docker exec命令执行java程序时它不会删除。但是当我通过登录到docker容器手动运行java程序时,它会删除该文件夹。
我检查了程序是由docker exec执行的,但是没有删除该文件。
编辑:默认情况下,Docker容器以root身份运行,因此不需要sudo