导航:首页 > 编程语言 > java怎么调用linux命令

java怎么调用linux命令

发布时间:2023-09-18 19:47:04

java中如何执行linux命令

执行linux命令基,基本思路是从控制台获得输入的指令,启动命令行执行命令,捕捉异常,示例如下:

publicclassTestRunTime{

publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{
Stringcmd="";

if(args==null||args.length==0){
System.out.println("请输入命令行参数");
}else{

for(inti=0;i<args.length;i++){//获得输入的命令
cmd+=args[i]+"";
}
}


try{
Processprocess=Runtime.getRuntime().exec(cmd);//执行命令

InputStreamReaderir=newInputStreamReader(process.getInputStream());
LineNumberReaderinput=newLineNumberReader(ir);

Stringline;
while((line=input.readLine())!=null){//输出结果
System.out.println(line);
}
}catch(java.io.IOExceptione){
System.err.println("IOException"+e.getMessage());//捕捉异常
}
}
}

㈡ 怎么用java代码运行linux命令

以下方法支持Linux和windows两个系统的命令行调用。还用到了apache的lang工具包commons-lang3-3.1.jar来判断操作系统类型、也用到了和log4j-1.2.16.jar来打印日志。至于rm -rf 是否能成功删除文件,可以手动去调用命令行试试。

privateStringcallCmd(Stringcmd)throwsInterruptedException,UnHandledOSException,ExecuteException{
if(SystemUtils.IS_OS_LINUX){
try{
//使用Runtime来执行command,生成Process对象
Processprocess=Runtime.getRuntime().exec(
newString[]{"/bin/sh","-c",cmd});
intexitCode=process.waitFor();
//取得命令结果的输出流
InputStreamis=process.getInputStream();
//用一个读输出流类去读
InputStreamReaderisr=newInputStreamReader(is);
//用缓冲器读行
BufferedReaderbr=newBufferedReader(isr);
Stringline=null;
StringBuildersb=newStringBuilder();
while((line=br.readLine())!=null){
System.out.println(line);
sb.append(line);
}
is.close();
isr.close();
br.close();
returnsb.toString();
}catch(java.lang.NullPointerExceptione){
System.err.println("NullPointerException"+e.getMessage());
logger.error(cmd);
}catch(java.io.IOExceptione){
System.err.println("IOException"+e.getMessage());
}
thrownewExecuteException(cmd+"执行出错!");
}

if(SystemUtils.IS_OS_WINDOWS){
Processprocess;
try{
//process=newProcessBuilder(cmd).start();
String[]param_array=cmd.split("[\s]+");
ProcessBuilderpb=newProcessBuilder(param_array);
process=pb.start();
/*process=Runtime.getRuntime().exec(cmd);*/
intexitCode=process.waitFor();
InputStreamis=process.getInputStream();
InputStreamReaderisr=newInputStreamReader(is);
BufferedReaderbr=newBufferedReader(isr);
Stringline;
StringBuildersb=newStringBuilder();

while((line=br.readLine())!=null){
System.out.println(line);
sb.append(line);
}
is.close();
isr.close();
br.close();
returnsb.toString();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
thrownewExecuteException(cmd+"执行出错!");
}

thrownewUnHandledOSException("不支持本操作系统");
}

㈢ java程序如何在linux服务器上运行

直接与JDK在Linux下Java程序开发,你需要三样东西:1,
文本编辑器,你可以选择VIM,但考虑到Windows的习惯,建议用gedit
2。编译器,它是javac的
3解释器的程序,它是Java

到Ubuntu为例:内容
$ gedit中Hello.java

Hello.java可能因此:
---
公共类你好{
公共静态无效的主要(字串[] args){
的System.out.println(“HelloWorld”的);
}}

---

$ LS
Hello.java

$的javac Hello.java
....
BR> $ java的你好
的Helloworld

以上,而在windows基本相同。
中国我觉得你的问题可能是如何安装的JDK。 1.在
很多方法,你可以根据JDK的Linux二进制版本下载到太阳的主页,然后才能进行
$存取权限chmod a + X JDK-XXX-xxx.bin

以root权限运行
#。 / JDK-XXX-xxx.bin

2.如果您使用的是RedHat,FeforaCore的Linux版本是这样,那么你可以下载JDK的rpm包,然后在root权限安装:
#rpm -ivh JDK -xxx-xxx.rpm

3.如果使用这样的系统的Debian,Ubuntu的,这是很简单的,就这样任:
$命令和apt-get安装JDK ...
更详细的内容可以看到Ubuntu的中国维基评论,
写的很详细以上只是一个粗略的概述的步骤,当然你不应该因为它不使用Linux,你应该了解

Sygwin不是一个编辑器,而是一个Win32的Linux开发环境下实现的。
您可以在sygwin安装JDK。
你问具体地讲,它不会安装JDK,或者不使用JDK编译,或者不知道如何使用文本编辑器?

㈣ 如何用java调用linux shell命令

**
* 运行shell脚本
* @param shell 需要运行的shell脚本
*/
public static void execShell(String shell){
try {
Runtime rt = Runtime.getRuntime();
rt.exec(shell);
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 运行shell
*
* @param shStr
* 需要执行的shell
* @return
* @throws IOException
*/
public static List runShell(String shStr) throws Exception {
List<String> strList = new ArrayList();

Process process;
process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",shStr},null,null);
InputStreamReader ir = new InputStreamReader(process
.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
process.waitFor();
while ((line = input.readLine()) != null){
strList.add(line);
}

return strList;
}

阅读全文

与java怎么调用linux命令相关的资料

热点内容
诛仙62坐骑怎么升级到63 浏览:926
linux以日期查看日志记录 浏览:446
工业大数据是什么东西 浏览:881
魅族note3怎么重置网络 浏览:510
c语言程序设计模 浏览:92
儿童怎么做可编程机 浏览:603
数据计算属于什么统计学 浏览:921
07word怎么去掉标记 浏览:979
qq缓存的数据是什么 浏览:348
LED主Kv文件多少兆 浏览:856
苹果edge怎么删除下载文件 浏览:471
sas逻辑回归代码 浏览:572
用于keil下的stc器件数据库 浏览:400
新闻网站后台如何操作前台 浏览:539
在剪映app中怎么查看视频尺寸 浏览:9
linux文件成分包括 浏览:886
文件转换免费的软件 浏览:644
linuxwpsxlsx 浏览:482
小米手机怎么上移动网络连接失败怎么办 浏览:598
win10系统打开java 浏览:479

友情链接