java 调用命令行

  • JAVA Runtime类
  • java调用命令行
    • 1. java调用终端,使用命令"javac"
    • 2. java调用终端,使用javac编译helloWorld.java文件
    • 3. java调用终端,使用java运行编译好的helloWorld.class文件

JAVA Runtime类

1. exec以一个独立进程执行command,并返回Process句柄。
Process类说明: https://blog.csdn.net/zhoulupeng2012/article/details/49430455.

2. 当独立进程启动后,可以获取改进程的输出流和错误流。
– Process.getInputStream():可获取进程的输出流。
– Process.getErrorStream():可获取对象的错误输出流。
       
3. 调用Process.waitFor()方法等待目标进程终止。

java调用命令行

1. java调用终端,使用命令"javac"

import java.io.*;public class JavaExec2 {public static void main(String[] args) {try {Runtime rt = Runtime.getRuntime();//javac后无具体的参数,会输出错误信息。Process p = rt.exec("javac");//获取错误信息流。InputStream stderr = p.getErrorStream();//将错误信息流输出InputStreamReader isr = new InputStreamReader(stderr);BufferedReader br = new BufferedReader(isr);String line = "";System.out.println("--------------error---------------");while((line = br.readLine()) != null)System.out.println(line);System.out.println("");//等待进程完成。int exitVal = p.waitFor();System.out.println("Process Exitvalue: " + exitVal);}catch(Throwable t) {t.printStackTrace();}}
}

由于javac后无具体的参数,会输出错误提示信息。

--------------error---------------
用法: javac <options> <source files>
其中, 可能的选项包括:-g                         生成所有调试信息
.........................................................省略好多行。Process Exitvalue: 2

2. java调用终端,使用javac编译helloWorld.java文件

编写好的helloWorld.java文件放在此目录下
/Users/kyan/Desktop/JAVA/Mooc/helloWord.java。

import java.io.*;public class JavaExec3 {public static void main(String[] args) {Process p;String[] cmds = new String[2];cmds[0] = "javac";cmds[1] = "/Users/kyan/Desktop/JAVA/Mooc/helloWord.java";try {//执行命令,将helloWord.java文件编译为.class文件p = Runtime.getRuntime().exec(cmds);BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));String line = "";while((line = br.readLine()) != null)System.out.println(line);System.out.println();}catch(Exception e) {e.printStackTrace();}}
}

3. java调用终端,使用java运行编译好的helloWorld.class文件

import java.io.*;public class JavaExec4 {public static void main(String[] args) throws InterruptedException {Process p;String[] cmds = new String[2];cmds[0] = "java";cmds[1] = "helloWord";try {//执行命令,运行helloWord.class文件。p = Runtime.getRuntime().exec(cmds, null, new File("/Users/kyan/Desktop/JAVA/Mooc/"));BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));String line = null;while((line = br.readLine()) != null)System.out.println(line);System.out.println();int exitVal = p.waitFor(); //获取进程最后返回状态System.out.println("Process exitValue: " + exitVal);} catch (IOException e) {e.printStackTrace();}}
}

输出结果:

hello world!Process exitValue: 0

java 调用命令行相关推荐

  1. java调用命令行命令_Java命令行界面(第4部分):命令行

    java调用命令行命令 我的Java命令行解析系列的第四部分介绍了Commandline ,它被描述为 "用于解析命令行参数的Java库",它"基于使用注释从命令行参数到 ...

  2. Java调用命令行+java生成词云

    java调用命令行 package com.weizu.control; import java.io.BufferedReader; import java.io.InputStreamReader ...

  3. java调用命令行校对系统时间

    电脑时间长了发现系统时间不准确,每次手动调整太麻烦,就自己写个程序校正一下 首先linux下设置时间 date -s "2023-01-29 11:12:13",普通执行没问题,放 ...

  4. Java中命令行调用大坑

    Java中命令行调用大坑 背景 我司有一个查询服务接口机,QPS大概40~50,调用方式是Java调用Shell命令行的方式,核心代码如下: Process ps = Runtime.getRunti ...

  5. java main命令行参数_java使用命令行参数

    有时你想在运行程序时将信息传递到一个程序中.这通过将命令行参数(command-line arguments )传递给main() 来实现.命令行参数是程序执行时在命令行中紧跟在程序名后的信息.在Ja ...

  6. python调用cmd执行命令_python调用命令行,其中包含“echo”和“|”

    参见英文答案 > piping in shell via Python subprocess module 4个 我试着用python调用命令行执行一些文件.但是,当有一个包含"ech ...

  7. qt执行命令行失败_QT中QProcess调用命令行的痛苦经历

    在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...

  8. windows下,C++中调用命令行并且获取命令行的输出

    说明,上一次写到了使用共享内存来实现获取命令行的输出.但是共享内存实际上是实现两个进程间的通信.其使用方式为在本进程创建共享内存,并在另外一个进程中调用cmd将结果写入到共享内存中,实际没有处理如何调 ...

  9. 介绍Java -D 命令行参数

    介绍Java -D 命令行参数 我们在ide中执行程序经常需要设置VM参数,运行maven命令也需要设置参数,都是通过-D设置参数值.本文带你了解-D命令行参数. 1. 什么是Java -D命令行参数 ...

最新文章

  1. Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞分析
  2. 开发日记-20190509
  3. field list什么意思_从源码中学Vue(六)「解密」为什么操作数组的方法也会触发视图更新...
  4. IDEA运行VUE项目
  5. js 替换任意字符串中间几位为*星号
  6. Java中数据是如何存储
  7. 机器人布罩_机器人防护罩案例分析
  8. C-Free 5.0下载和安装教程
  9. SharePoint 2013 Ajax 造成页面无法编辑
  10. Android意图Intent总结代码
  11. ZOJ Monthly, March 2018 A Easy Number Game
  12. 分号(;)和逗号(,)的用法
  13. android触摸 apk,超级触控(流畅触屏)apk
  14. JDK 1.8 中的 Timer 类
  15. 密度分析(七) Python实现
  16. node nvm 安装及使用
  17. PMP(第六版)中的各种矩阵表格
  18. wordcloud词云可视化
  19. SQL Developer的下载、安装和连接Oracle数据库
  20. mulesoft MCIA 破釜沉舟备考 2023.02.10.01

热门文章

  1. matlab 课程设计循环码性能分析,matlab课程设计--循环码的性能分析
  2. 5,线程池,进程池,协程,IO模型
  3. API的String 一些用法
  4. 2019年以后ArcGIS 调用天地图的资源URL
  5. Quartz+log4net实现控制台程序定时运行,并且记录日志
  6. 通过javascript在网页端生成zip压缩包并下载
  7. 【RMQ问题】求数组区间最大值,NYOJ-1185-最大最小值
  8. MSSQL数据库设计心得
  9. HttpHandler和HttpModule 心得介绍
  10. 26日直播预告丨 经典知识库:ASM元数据简介及案例分享