java版本streamgobbler_java调用本地命令 Runtime class's exec() method

一个简单的定时调用dos命令的例子

2,

ExecJavac.java 带有异常处理的命令调用例子

3,

GoodWindowsExec.java 执行windows下的命令,命令作为参数输入

StreamGobbler.java

4,

GoodWinRedirect.java 一个调用命令相对复杂的例子,复合命令

StreamRedirectGobbler.java

5,

TestExec.java 测试输入的命令是否能正确run

1 一个在windows平台下定时调用dos命令的简单例子。

==================== SchedulerExec 开始

==============================

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

public class SchedulerExec {

//调度者

private static Timer timer = new Timer();

//任务

static class ScheduledTask extends TimerTask {

public void

run() {

try {

Process process1, process2;

//1 执行windows的DOS命令:copy c:/a.txt 文件 到 d:/b.txt

process1 = Runtime.getRuntime().exec("cmd /c copy c:/a.txt

d:/b.txt");

if (process1.waitFor() == 0) {//等待copy 完毕, process1.waitFor()

会造成阻塞

//2 执行windows的DOS命令:打开b.txt文件

process2 = Runtime.getRuntime().exec("cmd /c d:/b.txt");

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

//测试方法

public static void main(String[] args) {

//1 定义时程

11:11:11

Calendar

calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, 11);

calendar.set(Calendar.MINUTE, 11);

calendar.set(Calendar.SECOND, 11);

Date time =

calendar.getTime();

//2

新建任务

ScheduledTask scheduledTask = new ScheduledTask();

//3

执行调度

timer.schedule(scheduledTask, time);

System.out.println("A job has been scheduled at " + time);

}

}

==================== SchedulerExec 开始

==============================

2 当本地进程抛出异常 或者错误信息时的 解决方式。

很多时候,由于给定的参数不合法或者其它原因,会造成实际进程的调用出现错误,我们必须对这些错误进行处理,以免进程处于阻塞或者死锁。增强程序的稳定性。

下面是一个windows下调用javac命令的例子,我们都知道 javac后面是需要带参数的 如:java类名等。

这里只调用javac,而不给参数,目的是演示如何处理实际进程给出的错误信息。

==================== ExecJavac 开始

==============================

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

public class ExecJavac {

public static void main(String args[]) {

try {

Runtime rt = Runtime.getRuntime();

Process proc = rt.exec("javac");

InputStream stderr = proc.getErrorStream();

InputStreamReader isr = new InputStreamReader(stderr);

BufferedReader br = new BufferedReader(isr);

String line = null;

System.out.println("");

while ((line = br.readLine()) != null)

System.out.println(line);

System.out.println("");

int exitVal = proc.waitFor();

System.out.println("Process exitValue: " + exitVal);

} catch

(Throwable t) {

t.printStackTrace();

}

}

}

==================== ExecJavac 结束

==============================

下面是输出:

==================== 输出开始 ==============================

用法:javac

其中,可能的选项包括:

-g 生成所有调试信息

-g:none 不生成任何调试信息

-g:{lines,vars,source} 只生成某些调试信息

-nowarn 不生成任何警告

-verbose 输出有关编译器正在执行的操作的消息

-deprecation 输出使用已过时的 API 的源位置

-classpath

 指定查找用户类文件的位置

-cp

 指定查找用户类文件的位置

-sourcepath

 指定查找输入源文件的位置

-bootclasspath

 覆盖引导类文件的位置

-extdirs

 覆盖安装的扩展目录的位置

-endorseddirs

 覆盖签名的标准路径的位置

-d

 指定存放生成的类文件的位置

-encoding

 指定源文件使用的字符编码

-source

 提供与指定版本的源兼容性

-target

 生成特定 VM 版本的类文件

-version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux定时任务

最近在做一个SHELL脚本,要求每月1号执行一次。 不管是SHELL脚本,还是定时任务,都是刚接触。今天先记录下定时任务的解决过程,shell脚本的总结等测试无误后写出来。 root以及其他用户可以使用 crontab -e 命令添加定时任务 crontab…

java长连接转短连接_java原生程序redis连接(连接池/长连接和短连接)选择问题...

原标题:java原生程序redis连接(连接池/长连接和短连接)选择问题最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接,以及连接池和单连接等问题用几篇博客来总结下。这个问题的具体发生在java原生程序和redis的交互中。这个问题对我最…

CCTF部分赛题分析

这次算是跟着师傅们全程打完了CCTF的线上赛,一些强队的WriteUp也放了出来。这篇文章主要是想跟着大牛的思路把那些题重新再过一遍。 PWN3 这个是格式化字符串漏洞的题。printf的格式化串直接来自用户输入。 操作流程 用格式化字符串"%7$x"泄漏libc的地址。…

mediawiki mysql_MediaWiki

MediaWiki 最初是由科隆大学的学生及Magnus Manske这位程式开发员设计来编写维基百科的。50而当时是使用以Perl基础的UseModWiki(被维基社群加上外号为”Phase I”),但後来於2002年1月25日转换至以PHP编写的新版本(”Phase Ⅱ”)。这个维基社群中是十分有名的&#…

20159206 《网络攻防实践》第九周学习总结

20159206《网络攻防实践》第九周学习总结 教材学习内容总结 本周我们学习了教材的第九章和第十章。 第九章介绍了恶意代码安全攻防。首先教材介绍了恶意代码的基础知识,恶意代码指的是使计算机按照攻击者的意图执行以达到恶意目的的指令集。恶意代码包括计算机病毒、…

mysql 操作xm_mysql基本命令使用

启动mysql>net start mysql连接mysql>mysql -u root -h 127.0.0.1 -p password断开mysql连接>qult;查看mysql服务器所有数据库列表>show databases;选择mysql数据库>use database_name;创建数据库>create database database_name;删除数据库>drop databas…

Android深度探索(卷一)第四章读书笔记

通过对git使用方法的学习, 第四章就介绍了源代码的下载和编译。 4.1 下载、编译和测试Android源代码 4.1.1 配置Android源代码下载环境:1创建一个用于存放下载脚本文件的目录。2下载repo脚本文件。3创建用于存放Android源代码的目录。4初始化。5开始下载…

mysql集群重启报错lock_CentOS7.2 下 MySQL 之 PXC 集群部署【Docker+单机多节点】

背景【注意】: 鄙人认为本篇适合做入门测试/学习之用,选择的 "单机多节点配置",后面再整理 "多机配置"文章.近期正突击学习数据库知识想着对 PXC 集群部署实际操作一番,提高技能点,为后续的升职加薪做充足的准…

十二:内存简单介绍和OC的内存管理

一、内存简单介绍 内存结构 1、运行时分配 (1)栈:用户存放程序临时创建的局部变量(先进后出)。 (2)堆:动态分配内存段。 2、编译器分配 (1)BSS段:…

java上传组件_java上传组件FileUpload

如果表单中有文件要上传,也就是有就需要在form标签中添加enctype"multipart/form-data"属性 如果添加此属性,在操作页面servlet中,用request.getParameter("name")获取普通表单数据就会出错java.lang.NullPointerExcepti…

第九周学习进度

第九周所花时间(包括上课)上课4小时,课后4小时代码量(行)      300博客量1了解到的知识点安卓开发环境的应用、服务器的连接转载于:https://www.cnblogs.com/wangzongze/p/5449535.html

百度推送java_关于百度推送,请教一下大家

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼2015-10-23 14:38:01,734 ERROR [main] - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name org.springframework.web.servlet.mvc.method.annotation.Requ…

java一般做什么_java开发一般做什么

4java怎么样学习编程的时候,一定要独立思考现在网络很发达,我见很多程序员总爱百度,包括我带的许多人都是这样,一个jdbc这么初级的东东,他们编程几年了,每次用还总是百度查。这个东西应该是熟记于心的&…

echarts饼状图mysql_echarts饼状图位置设置

ReactNative环境配置参考链接 Windows系统安装React Native环境 windows下React Native Android 环境搭建 在Windows下搭建React Native Android开发环境 ...(转载)PHP获取客户端、PHP获取服务器相关信息(转载)http://www.php100.com/html/webkaifa/PHP/PHP/2009/1027/3446.htm…

Fragment销毁时replace和add两个方法的区别

这个首先从一个bug说起,如图: 我们都知道fragment切换有两种方式: 1. replace方式 transaction.replace(R.id.content, IndexFragment); 2. add-hide-show方式 transaction.add(R.id.content, IndexFragment); transaction.hide(…

java setlocation_Java Point.setLocation方法代碼示例

本文整理匯總了Java中java.awt.Point.setLocation方法的典型用法代碼示例。如果您正苦於以下問題:Java Point.setLocation方法的具體用法?Java Point.setLocation怎麽用?Java Point.setLocation使用的例子?那麽恭喜您, 這裏精選的…

hdu_2089 不要62

数位动态规划 数位动态规划是求解一个大区间[L, R]中间满足条件Q的所有数字的个数(或者和,或其他)的一种方法。它通过分析每一位上的数字,一般用 dp[len][digit][...] 来表示状态“len位长的数字,最高位数字为digi…

java 当天唯一ids_java-为不同的时间字符串接收相同的ZonedDat...

当您调用LocalDate.parse时,您只获得日期部分(日,月和年),而丢弃其余部分. LocalDate没有时间字段(小时,分钟,秒和秒的一部分),因此它们只是被丢弃并丢失.然后,调用atStartOfDay(ZoneId.systemDefault()),它将时间设置为JVM默认时区的午夜.如果要保留所有内容(日期和时间),请将…

Spring的常见问题及答案

目录 Spring 概述依赖注入Spring beansSpring注解Spring数据访问Spring面向切面编程(AOP)Spring MVCSpring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的…

java 打印abcd_用JAVA编程统计字符串ABCD123!@#$%ab中大写字母、小写字母、数字、其它字符的个数并打印出来...

/*** 编程统计字符串"ABCD123!#$%ab"中大写字母、小写字母、数字、其它字符的个数并打 印出来。*/public class Job1Test {public static void main(String[] args) {String str1 new String("ABCD123!#$%ab");System.out.println("字符串&#xff1…