当前位置:家常菜>百科>科技>正文

java调用linux命令行

人气:442 ℃/2023-03-13 03:53:21

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是占位变量,在使用变量时按顺序使用,赋值时按照相应的顺序进行赋值。

  • 网约车人证是啥

    人证就是从业资格证,在有些城市如果没有这个证就跑网约车,那被查到后会被处罚的。网约车就是滴滴这种平台的车,滴滴这类app出现后,提高了人们的出行便利性和出行体验。在没有这些网约...

    问答查看全文>>
  • 父亲节感恩句子简短2022 父亲节句子 简短

    1、我最亲爱的老爸,谢谢你陪着我成长,谢谢你无论我怎么做错事,还是那么爱我,谢谢你在我最需要别人在我身边鼓励我的时候,你一直都在,谢谢你对我无私的爱。2、有时我忙,有时我忘;有...

    句子查看全文>>
  • 关于天气冷的说说伤感

    1、天冷了,风吹的心也冷了。2、孤独的石阶上,没有人看到你跳舞。只有一份失落无声飘荡,随着凄凉,飘过今夜,飘过无法驻留的心头。3、世界上最遥远的距离不是生与死的距离,而是冬天被...

    说说查看全文>>
  • 奇瑞艾瑞泽gx手动变速箱是爱信吗

    奇瑞艾瑞泽gx手动变速箱是爱信吗?奇瑞艾瑞泽gx手动变速箱不是爱信的:1、奇瑞艾瑞泽GX的尺寸是4700*1825*1482mm,轴距为2670mm,这个尺寸来看的,空间上是非...

    问答查看全文>>
  • 尼桑天籁的碰撞传感器在哪个位置?

    尼桑天籁的碰撞传感器在保险杆防撞钢梁后边的减震器上,碰撞传感器有机电结合式、电子式和水银开关式。以天籁2021款2.0LXL舒适版为例:其是一款中型4门5座三厢车,搭载CVT无...

    问答查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2025 家常菜 All Rights Reserved. 手机版