`
kiki1120
  • 浏览: 313830 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Runtime.getRuntime().exec()的替代方法

    博客分类:
  • Java
阅读更多

通过Java的“Runtime.getRuntime().exec()”来执行一个外部shell脚本,这种方法在Java中非常消耗资源。

 

Java虚拟机执行这个命令的方式是:首先克隆一个和当前虚拟机一样的进程,再用这个新的进程去执行外部命令,最后再退出这个进程。如果频繁执行这个操作,系统的消耗会很大,不仅在 CPU,内存操作也很重。可用JNI作为替代方法。

 

下面给出例子程序

public class SysCommUtil {
	final static Log log = LogFactory.getLog(SysCommUtil.class);
	static{
		try{
			//此处即为本地方法所在链接库名
			System.load("/libsysutil.so");
			if (log.isDebugEnabled())
				log.debug("加载libsysutil.so:成功!");
		}catch(UnsatisfiedLinkError e)
		{
			if (log.isDebugEnabled())
				log.error("无法加载库:"+e.toString());				
		}
	}
	
	public static native String ExcuteCmd(String strCmd);
}

 

分享到:
评论

相关推荐

    操作进程,显示与杀死

    在Java环境中,可以利用`Runtime.getRuntime().exec(commandStr)`方法执行上述命令。例如,`Runtime.getRuntime().exec("taskkill /im Notepad.exe")`将会结束所有记事本进程。如果需要强制结束,只需添加`/F`参数,...

    Java通过进程名称杀进程

    - `Runtime.getRuntime()`方法可以获得当前Java应用程序的`Runtime`实例,从而执行操作系统级别的命令。 #### 二、Java实现进程终止的核心代码解析 ```java public void killProcess() { Runtime rt = Runtime....

    java调用vbs获取获取excel各sheet页打印总数

    2. **在Java中调用VBScript**:使用Java的`Runtime.getRuntime().exec()`方法执行VBScript。首先,你需要将上面的VBScript保存为.vbs文件,然后在Java代码中调用它,传递Excel文件路径作为参数: ```java Process ...

    Android中级篇之用JAVA代码执行shell命令.rar_Android 执行shell_android_effectoh

    1. `Runtime.getRuntime().exec()`: 这是最常用的方法,通过Runtime类的`exec()`方法可以执行shell命令。例如: ```java Process process = Runtime.getRuntime().exec("ls /sdcard"); ``` 上述代码会执行`ls /...

    Android应用程序请求root权限代码

    - **root权限的替代方案**:对于一些不需要root权限就能实现的功能,开发者可以考虑使用Android系统内置的安全机制或其他替代方法来避免使用root权限。 通过以上分析,我们可以看出请求root权限是一个复杂且敏感的...

    java applet详解

    - Applet 可以与本地应用程序交互,如示例中的 `openApp()` 方法,通过 `Runtime.getRuntime().exec(url)` 来启动本地计算器。 6. **安全限制**: - Applet 运行在沙箱环境中,受到安全限制,不能直接访问本地...

    Java期末复习-常用类库

    通过Runtime.getRuntime()获取单例实例,可以调用freeMemory()获取剩余内存,maxMemory()获取最大内存,gc()执行垃圾回收,以及exec()执行系统命令。例如,可以通过exec("notepad.exe")启动记事本程序。 对于国际化...

    java调用web2pic实现整站页面截屏(只能windows)

    Process process = Runtime.getRuntime().exec(command); int exitCode = process.waitFor(); if (exitCode == 0) { System.out.println("截图成功"); } else { System.out.println("截图失败,错误代码:" + ...

    02命令执行代码注入漏洞.pptx

    例如,PHP中的`system`、`exec`和`passthru`函数,Java的`Runtime.getRuntime().exec(...)`,以及ASP/ASPX的`eval`函数等,都是可能导致此类问题的危险函数。当用户能够控制这些函数的参数时,如果没有进行严格的...

    pdf装swf java源码

    4. **Java源码集成**:在Java项目中,你可以通过调用`Runtime.getRuntime().exec()`方法执行`pdf2swf.exe`,并传递所需的参数。这样可以将PDF转换功能集成到你的应用中。 5. **错误处理和日志记录**:在执行转换时...

    java使用phantomjs把echarts转图片 静态资源

    - 使用`ProcessBuilder`或`Runtime.getRuntime().exec()`方法来执行PhantomJS命令,打开这个HTML页面,并捕获输出的图片。 - PhantomJS命令可能类似`phantomjs --ssl-protocol=any --web-security=no screenshot....

    基于Java的在线阅览系统设计.docx

    在Java代码中,可以通过调用`Runtime.getRuntime().exec(cmd)`的方法实现在后台自动将上传的文件转换为SWF格式。对于DOC、PPT等Microsoft Office格式的文档,则可使用Flashpaper工具将其转换为SWF格式,其调用方法与...

    java问题定位技术+性能优化

    - 使用`Runtime.getRuntime().exec()`启动子进程时可能会遇到的问题。 - 需要确保正确处理子进程的输入输出流,防止阻塞。 - **6.2 JDK自带的几个Timer的适用场合** - `java.util.Timer`: 适用于简单的计时任务。 ...

Global site tag (gtag.js) - Google Analytics