Java设置指定运行目录

该博客展示了如何在Java中通过Runtime类执行Shell脚本来实现文件复制。具体做法是定义一个方法execDos,接收命令、环境变量和执行目录参数,然后调用Runtime的exec方法执行命令。在示例中,脚本会输出彩色的'HelloWorld!'并复制一个jar文件到指定目录。当访问接口/testCopyShellFilePermission时,脚本成功执行且文件复制无误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口

@ResponseBody
    @GetMapping("/testCopyShellFilePermission")
    public String testCopyShellFilePermission() {
        //复制
        return execDos("./hello.sh", null, "/data/shell");
    }

实现

   /**
     * 指定运行目录执行语句
     *
     * @param dos     要执行的命令
     * @param env     设置环境变量,值是:环境变量名=环境变量值,例如 JAVA_HOEM=/usr/lib/java1.8
     * @param bashDir 执行语句的目录
     * @return
     */
    public static String execDos(String dos, String[] env, String bashDir) {
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(dos, env, new File(bashDir));
            process.waitFor();
            InputStream in = process.getErrorStream();
            return IOUtils.toString(in, StandardCharsets.UTF_8);
        } catch (InterruptedException | IOException e) {
            e.printStackTrace();
        }
        return null;
    }

/data/shell下的脚本
彩色输出hello world
将/data/app-0.0.1-SNAPSHOT.jar文件复制到/data/shell目录下,可以自己修改

#!/bin/bash
echo -e "\e[;32m Hello World! \e[0m"
cp /data/app-0.0.1-SNAPSHOT.jar ./

访问接口后代码不报错并且文件被成功复制到/data/shell目录下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一米阳光zw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值