java调用linux命令行

java调用linux命令行有两种调用方式。一种是直接调用linux命令,二是将linux命令写到.sh脚本中,调用脚本执行。1、直接调用:使用java中lang包下面的Runtime类和Process类,其中Runtime类中的Runtime.getRuntime().exec(linux command)方法可以直接执行linux命令,而Process类可以接收Runtime.getRuntime()....
java调用linux命令行
java怎么调用linux命令行呢?下面是java调用linux命令行的具体方法介绍:
java调用linux命令行有两种调用方式。一种是直接调用linux命令,二是将linux命令写到.sh脚本中,调用脚本执行。
1、直接调用:
使用java中lang包下面的Runtime类和Process类,其中Runtime类中的Runtime.getRuntime().exec(linux command)方法可以直接执行linux命令,而Process类可以接收Runtime.getRuntime().exec()类的返回值,并提供了waitFor()方法和destroy()方法,waitFor()方法的作用在于等待此process执行完成后再执行后面的内容,destroy()方法作用在于销毁process。
2、调用shell脚本:
直接调用方法存在一些弊端,比如复杂命令不好实现、有些命令莫名其妙实现不了等。因此我推荐使用调用shell脚本的方式实现linux命令。具体实现方法为:首先将命令写在shell脚本(.sh)中,然后在Runtime.getRuntime().exec()中调用“sh path/.sh”,其中path为shell脚本的路径。
实现案例如下图所示:
其中imp.sh中的命令是:
1 name=$12 su - oracle -c imp user/pwd@实例名 file=filepath full=y ignore=y
该语句实现的功能为在root用户下,切换到oracle目录,并将某个.dmp文件使用imp命令导入oracle数据库,然后返回到root用户下,将该语句放到for循环中实现了多个.dmp文件导入oracle数据库的功能。其中.dmp文件的文件名是变量,在shell命令中以name=$1代替,在linux命令中以${name}代指文件名,在调用时传入该参数的值,linux命令中$1,$2…$n是占位变量,在使用变量时按顺序使用,赋值时按照相应的顺序进行赋值。2024-04-18
mengvlog 阅读 9 次 更新于 2025-07-18 21:26:27 我来答关注问题0
  •  翡希信息咨询 java调用linux命令行

    在Java中调用Linux命令行,可以通过以下两种方式实现:直接调用Linux命令:使用java.lang包下的Runtime类和Process类。通过Runtime.getRuntime.exec方法直接执行Linux命令。Process类可以接收Runtime.getRuntime.exec方法的返回值,并提供waitFor方法等待进程执行完成,以及destroy方法销毁进程。调用Shell脚本:首先...

  • 1、直接调用:使用java中lang包下面的Runtime类和Process类,其中Runtime类中的Runtime.getRuntime().exec(linux command)方法可以直接执行linux命令,而Process类可以接收Runtime.getRuntime().exec()类的返回值,并提供了waitFor()方法和destroy()方法,waitFor()方法的作用在于等待此process执行完成后再...

  •  腾云新分享 android 开发环境下如何使用java代码执行Linux 的cp、chmod、vi等一系列命令

    在安卓开发环境中,若需执行Linux下的cp、chmod、vi等命令,可以通过安装命令行应用来实现。这类应用在安卓市场中有众多选择,只需搜索并安装即可。需要注意的是,这些应用通常需要root权限才能执行命令,因此请确保你的设备已解锁root权限。安装命令行应用后,你可以在安卓设备上直接使用这些Linux命令,从而...

  • import java.io.InputStreamReader;import java.util.stream.Collectors;public class ExecuteLinuxCommand { public static void main(String[] args) { try { ProcessBuilder processBuilder = new ProcessBuilder();processBuilder.command("ls", "-l");Process process = processBuilder.start();int exit...

  • java虚拟机执行这个命令的过程是,首先克隆一条和当前虚拟机拥有一样环境变量的进程,再用这个新的进程执行外部命令,最后退出这个进程。频繁的创建对CPU和内存的消耗很大。 下面是一个调用linux命令的例子: public class Test { public static void main(String[] args) throws Exception{ String...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部