java 调用命令行
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 调用命令行相关推荐
- java调用命令行命令_Java命令行界面(第4部分):命令行
java调用命令行命令 我的Java命令行解析系列的第四部分介绍了Commandline ,它被描述为 "用于解析命令行参数的Java库",它"基于使用注释从命令行参数到 ...
- Java调用命令行+java生成词云
java调用命令行 package com.weizu.control; import java.io.BufferedReader; import java.io.InputStreamReader ...
- java调用命令行校对系统时间
电脑时间长了发现系统时间不准确,每次手动调整太麻烦,就自己写个程序校正一下 首先linux下设置时间 date -s "2023-01-29 11:12:13",普通执行没问题,放 ...
- Java中命令行调用大坑
Java中命令行调用大坑 背景 我司有一个查询服务接口机,QPS大概40~50,调用方式是Java调用Shell命令行的方式,核心代码如下: Process ps = Runtime.getRunti ...
- java main命令行参数_java使用命令行参数
有时你想在运行程序时将信息传递到一个程序中.这通过将命令行参数(command-line arguments )传递给main() 来实现.命令行参数是程序执行时在命令行中紧跟在程序名后的信息.在Ja ...
- python调用cmd执行命令_python调用命令行,其中包含“echo”和“|”
参见英文答案 > piping in shell via Python subprocess module 4个 我试着用python调用命令行执行一些文件.但是,当有一个包含"ech ...
- qt执行命令行失败_QT中QProcess调用命令行的痛苦经历
在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...
- windows下,C++中调用命令行并且获取命令行的输出
说明,上一次写到了使用共享内存来实现获取命令行的输出.但是共享内存实际上是实现两个进程间的通信.其使用方式为在本进程创建共享内存,并在另外一个进程中调用cmd将结果写入到共享内存中,实际没有处理如何调 ...
- 介绍Java -D 命令行参数
介绍Java -D 命令行参数 我们在ide中执行程序经常需要设置VM参数,运行maven命令也需要设置参数,都是通过-D设置参数值.本文带你了解-D命令行参数. 1. 什么是Java -D命令行参数 ...
最新文章
- Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞分析
- 开发日记-20190509
- field list什么意思_从源码中学Vue(六)「解密」为什么操作数组的方法也会触发视图更新...
- IDEA运行VUE项目
- js 替换任意字符串中间几位为*星号
- Java中数据是如何存储
- 机器人布罩_机器人防护罩案例分析
- C-Free 5.0下载和安装教程
- SharePoint 2013 Ajax 造成页面无法编辑
- Android意图Intent总结代码
- ZOJ Monthly, March 2018 A Easy Number Game
- 分号(;)和逗号(,)的用法
- android触摸 apk,超级触控(流畅触屏)apk
- JDK 1.8 中的 Timer 类
- 密度分析(七) Python实现
- node nvm 安装及使用
- PMP(第六版)中的各种矩阵表格
- wordcloud词云可视化
- SQL Developer的下载、安装和连接Oracle数据库
- mulesoft MCIA 破釜沉舟备考 2023.02.10.01