Runtime.getRuntime.exec()使用

Runtime.getRuntime.exec()使用

我在一个项目中需要使用java调用python代码,我就想到了用java调用命令行执行,这里就是在执行过程中的一些见解。

方法:

exec(String [] cmdarry)在单独的进程中执行指定的命令和参数
exec(String[] cmdarray,String[] envp)在指定环境变量的单独进程中执行指定的命令和参数
exec(String[] cmdarray,String[] envp,File dir)在指定环境变量和工作目录的单独进程中执行指定的命令和参数
exec(String command)(方法已经被弃用了)
exec(String command, String[] envp)(方法已经被弃用了)
exec(String command, String[] envp,File dir)(方法已经被弃用了)

参数说明:

  1. cmdarray : 字符串数组类型,每一个字符串元素代表着一个带有参数的命令。
  2. envp : 字符串数组类型,每一个字符串是是 name=value 的环境变量设置,如果子进程继承当前进程的环境,就设置为null
  3. File dir: 子进程的工作目录,如果子进程继承当前进程的工作目录,设置为null.

使用例子

直接执行就相当于在win+R之后输入相应的指令,比如执行打开笔记本。

Runtime.getRuntime().exec(new String[]{"notepad.exe"});

注意执行exec()里面的cmdarray和直接在cmd中执行命令是不同的,要在windows下调用程序系统命令(分为执行一条命令和执行两条命令情况)

Runtime.getRuntime().exec(new String[]{"cmd","/c",cmds});

比如在cmd中进入conda环境(执行一条命令)

Runtime.getRuntime().exec(new String[]{"cmd","/c","conda activate autodl"});

在进入conda命令之后执行python run.py(这里就是因为我的项目需要在autodl中的conda环境中执行。)

Runtime.getRuntime().exec(new String[]{"cmd","/c","conda activate autodl && python run.py"});

如果需要有工作目录,就要用如下的代码,因为我的python程序是需要在“C:\Users\zxb\Desktop\X-VLM-master”目录下运行。

Runtime.getRuntime().exec(new String[]{"cmd","/c","conda activate autodl && python run.py"},null,new File ("C:\\Users\\zxb\\Desktop\\X-VLM-master"));

注意:

方法具体是如何使用的我还不是很清楚,以后真正弄懂了再来补充。

参考

官方文档

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值