Runtime类 调用windows程序。
import java.io.*;
public class webcyz {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Runtime runtime = Runtime.getRuntime();
runtime.exec("explorer /select, c:");
} catch (IOException e)
{
e.printStackTrace();
}
}
}
每一个Java应用程序都有一个Runtime类的实例,允许应用程序与其运行的环境进行交互。我们只能使用getRuntime方法得到当前的运行时环境。类的方法如下:
·public static Runtime getRuntime() 得到与当前Java应用程序相联系的运行时环境。
·public void exit(int status)
中断当前运行的Java虚拟机。参数status为状态码,通常非0的状态码描述非正常的中断
·public void addShutdownHook(Thread hook)
登记新的虚拟机shutdown hook。shutdown hook是一个简单的、已初始化但还未启动的线程。当虚拟机开始它的shutdown序列,虚拟机将以不确定的顺序启动所有的、已登记的 shutdown hook,并让它们并行运行。当所有的hook完成,如果支持finalization-on-exit,将调用所有未调用的finallizer。
在两种情况下Java虚拟机将关闭:
(1)程序正常退出,当最后一个非守护线程退出或调用了exit方法。
(2)虚拟机被用户中断(例如:键入了ctr+C),或者是一个系统范围的事件(例如:用户Logoff或系统关闭)。
一旦shutdown序列开始,就不可以再登记新的shutdown hook或解除先前登记的hook。否则,将抛掷IllegalStateException异常;如果参数hook已经登记,或者已经运行,将抛掷IllegalArgumentException异常;如果安全管理器存在且拒绝RuntimePermission("shut-downHooks"),将抛掷SeurityException异常。
·public boolean removeShutdownhook(Thread hook)
解除先前登记的虚拟机shutdown hook。
如果虚拟机已经处于shutdown过程,则抛掷IllegalStateException异常;如果安全管理器存在且否定RuntimePermission(“shutdownHooks”),将抛掷SecurityException异常。
·public void halt(int status)
强制中断当前运行的Java虚拟机,使用该方法应该非常地小心,与exit方法不同,它不会导致shutdown hook启动,即使支持finalization-on-exit,也不会运行还未调用的finalizer。参数status为中断的状态,通常,非0的状态码描述了非正常的中断。
如果安全管理器存在且其上的checkExit方法不允许以指定的状态退出,则抛掷SecurityException异常。
第5节 Runtime类(续1)
·public Process exec(String command)throws IOException
在一个单独的进程中执行参数command指定的命令,返回值为一个管理子进程的Process对象。
如果安全管理器存在且其上的checkExec方法不允许创建子进程,则抛掷SecurityException异常;如果发生I/O错误,则抛掷IOException异常。
·public Process exes(String cmd,String envp[]) throws IOException
在一个单独的进程中,使用指定的环境envp[],执行参数command指定的命令。其中envp[]为字符串数组,其格式为“名称= 值”。返回值为一个管理子进程的Process对象。
如果安全管理器存在且其上的checkExec方法不允许创建子进程,则抛掷SecurityException异常;如果发生I/O错误,则抛掷IOException异常。
·public Process exec(String command,String envp[],File dir) throws IOException
在一个单独的进程中,使用指定的环境envp[]和工作目录dir,执行参数command指定的命令。其中,envp[]为字符串数组,其格式为“名称= 值”。如果工作目录dir为null,子进程继承当前进程的的当前工作目录,返回值为一个管理子进程的Process对象。
如果安全管理器存在且其上的checkExec方法不允许创建子进程,则抛掷SecurityException异常;如果发生I/O错误,则抛掷IOExceptiop异常。
·public Process exec(String cmdarray[]) throws IOException
在一个单独的进程中,执行参数cmdarray[]指定的命令。参数cmdarray[]为需执行的命令的数组。返回值是一个管理子进程的Process对象。
如果安全管理器存在且checkExec方法不允许创建子进程,则抛掷SecurityException异常;如果发牛I/O错误,则抛掷IOException异常。
·public process exec(String cmdarray[],String enevp[]) throws IOException
在一个单独的进程中,使用指定的环境enevp[],执行参数cmdarray[]指定的命令。参数cmdarray[]为需执行命令的数组。返回值为一个管理子进程的Process对象。
如果安全管理器存在且其上的checkExec方法不允许创建子进程,则抛掷SecurityException异常;如果cmdarrat[]为null,则抛掷NullPointerException异常;如果cmdarray[]是一个长度为0的空数组,则抛掷IndexOutOfboundsException异常;如果发生I/O错误,则抛掷IOException异常。
·public Process exec(String cmdarray[],String enevp[],File dir) throws IOException
在一个单独的进程中,使用指定的环境enevp[]和工作目录dir,执行参数cmdarray[]指定的命令,返回值为一个管理子进程的Process对象。
如果安全管理器存在且其上的。checkExec方法不允许创建子进程,则抛掷securityException异常;如果cmdarray[]为null,则抛掷NullPointerException异常;如果cmdarray[]是一个长度为0的空数组,则抛掷IndexOutOfBoundsException异常;如果发生I/O错误,则抛掷IOException异常。
第5节 Runtime类(续2)
·public native long freeMemory()
得到系统的空闲内存,单位为字节。调用gc方法可能会导致freememory结果的增加。
·public native long totalMemory()
得到Java虚拟机中的内存总数,单位为字节。该方法的返回值会随事件的变化而变化,依赖于主机环境。
·public native void gc()
运行垃圾收集器。
·Public void runFinalization()
运行任何未决finalization对象的finalization方法。
·public native void traceInstructions(boolean on)
设置对指令的追踪,如果参数on为true,则Java虚拟机对于其上执行的每一条指令都发出调试信息。
·public native void traceMethodCalls(boolean on)
设置对调用方法的追踪。如果参数on为true,则支持指令的追踪。
·public void load(String filename)
装载参数filename指定的动态库。
如果安全管理器存在且其上的checkLink方法不允许装载指定动态库,将抛掷 SecurityException异常;如果filename参数指定的文件不存在,则抛掷UnsatisfiedLinkError异常。
·public void loadLibrary(String libname)
装载参数libname指定的动态库。
如果安全管理器存在且它的checkLink方法不允许指定动态库的装载,将抛掷SecurityException异常;如果参数指定的动态库不存在,则抛掷UnsatisfiedLinkError异常。
·public InputStream getLocalizaedInputStream(InputStream in)
创建本地化版本的输入流。
·public OutputStream getLocalizedOutputStream(OutputStream out)
创建本地化版本的输出流。
Runtime类 调用windows程序。的更多相关文章
- 实体类在Windows程序中的高级应用--------------------》》心境是一种境界。
一.事务 我们在大家学到这,或多或少对事务都有一些理解了.今天的我也对事务有了更深一层的理解对我来说,我想与大家一起分享一下. 解析: 1.ADO.NET提供了事务处理功能 2.C#中开启事务 3.在 ...
- Runtime 类
Runtime代表Java程序的运行时环境,每一个Java程序在运行时都有一个Runtime实例与之对应.Java程序通过它可以和运行时环境相连 1,和JVM进行交互,通知JVM进行垃圾回收等 2,获 ...
- JAVA_SE基础——68.RunTime类
RunTime类代表Java程序的运行时环境,每一个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与运行时环境相连,应用程序不能创建自己的Runtime实例,但可以通过getRu ...
- System类与Runtime类
PS: Java程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定功能.java提供了System类与Runtime类来与程序的运行平台进行交互. System类: 1 ...
- Java基础教程——RunTime类
RunTime类 java.lang.RunTime类代表Java程序的运行时环境. 可以进行垃圾回收(gc()),可以进行系统资源清理(runFinalization()): 可以加载文件(load ...
- C#调用Windows API(示例:显示任务管理器里的程序名称)
作为初学者来说,在C#中使用API确是一件令人头疼的问题. 在使用API之前你必须知道如何在C#中使用结构.类型转换.安全/不安全代码,可控/不可控代码等许多知识. 在.Net Framework S ...
- java使用RunTime调用windows命令行
当Java需要调用windows系统进行交互时,可以使用Runtime进行操作. 例子: 1.调用window中获取关于java相关的进行信息 Runtime rt = Runtime.getRunt ...
- 网页调用本地程序(Windows下浏览器全兼容)
用网页调用本地应用程序的思路是,先进行注册表注册自定义一个URL Protocol协议,再利用URL Protocol实现网页调用本地应用程序. 1.先写一个注册表文件,将其保存为.reg后缀的注册表 ...
- c# windows程序调用本地输入法
原文:c# windows程序调用本地输入法 好久没写博客了,今天写了一个DEMO,在WINform程序中调用本地输入法,并在窗体中显示出来.其中使用到了很多API,现把代码贴出来,供大家参考 ...
随机推荐
- jmeter多用户登录跨线程组操作传值
项目需求: 需要登录两个用户A.B,用户A操作完后会通知B,然后B再操作,B操作完结束或者再通知A. 实现思路: 1. 设置两个线程组Ⅰ.Ⅱ,组Ⅰ添加cookie管理器,里面添加用户A的操作:组Ⅱ添加 ...
- MySQL☞where与like
1.无条件查询语句(查询表中所有数据) select * from 表名 2.查询某些列的数据(指定列) select 列名1,列名2,列名3 from 表名 3.条件查询语句 select 列名1, ...
- jmeter☞文件目录(一)
Jmeter的文件目录如下图: 1.bin:可执行文件目录 a.jmeter.bat:Windows环境下的启动文件 b.jmeter.log:日志文件 c.jmeter.sh:Linux环境下的启动 ...
- python 基础篇 13 迭代器与生成器
13. 前⽅⾼能-迭代器和⽣成器本节主要内容:1. 迭代器2. ⽣成器 ⼀. 迭代器我们之前⼀直在⽤可迭代对象进⾏迭代操作. 那么到底什么是可迭代对象. 本⼩节主要讨论可迭代对象. ⾸先我们先回顾⼀下 ...
- 从传统IT快速走向公共云计算
2年前有篇报道,说Facebook的每个运维同学至少能管理2万台服务器,这在当时的国内互联网引起了很大震动,按照传统IT的理解,每个运维同学能管理200台服务器已经很了不起了. 这些年来云计算发展非常 ...
- Linux pthread 线程池实现
基于pthread封装了一个简易的ThreadPool,具有以下特性: 1.具有优先级的任务队列 2.线程池大小可以二次调整,增加线程或者删除空闲线程 3.任务两种重写方式,重写run或者使用函数回调 ...
- django之上传文件和图片
文件上传:文件上传功能是网站开发中必定会使用到的技术,在django项目中也是如此,下面会详细讲述django中上传文件的前端和后端的具体处理步骤: 前端HTML代码实现: 1.在前端中,我们需要填入 ...
- BST插入与查找
B树: 二叉查找树,所有左节点都比父节点要小,所有右节点都比父节点要大.查找,插入的时间复杂度为O(logn) public class BTreeTest { public static int[] ...
- android自定义View绘制圆形头像与椭圆头像
要实现这两种效果,需要自定义View,并且有两种实现方式. 第一种: public class BitmapShaders extends View { private BitmapSh ...
- C++中范围for语句
如果想对string对象中的每个字符做点什么操作,目前最好的办法是使用C++11新标准提供的一种语句:范围for(range for)语句. 示例代码: #include<iostream> ...