通过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`参数,...
- `Runtime.getRuntime()`方法可以获得当前Java应用程序的`Runtime`实例,从而执行操作系统级别的命令。 #### 二、Java实现进程终止的核心代码解析 ```java public void killProcess() { Runtime rt = Runtime....
2. **在Java中调用VBScript**:使用Java的`Runtime.getRuntime().exec()`方法执行VBScript。首先,你需要将上面的VBScript保存为.vbs文件,然后在Java代码中调用它,传递Excel文件路径作为参数: ```java Process ...
1. `Runtime.getRuntime().exec()`: 这是最常用的方法,通过Runtime类的`exec()`方法可以执行shell命令。例如: ```java Process process = Runtime.getRuntime().exec("ls /sdcard"); ``` 上述代码会执行`ls /...
- **root权限的替代方案**:对于一些不需要root权限就能实现的功能,开发者可以考虑使用Android系统内置的安全机制或其他替代方法来避免使用root权限。 通过以上分析,我们可以看出请求root权限是一个复杂且敏感的...
- Applet 可以与本地应用程序交互,如示例中的 `openApp()` 方法,通过 `Runtime.getRuntime().exec(url)` 来启动本地计算器。 6. **安全限制**: - Applet 运行在沙箱环境中,受到安全限制,不能直接访问本地...
通过Runtime.getRuntime()获取单例实例,可以调用freeMemory()获取剩余内存,maxMemory()获取最大内存,gc()执行垃圾回收,以及exec()执行系统命令。例如,可以通过exec("notepad.exe")启动记事本程序。 对于国际化...
Process process = Runtime.getRuntime().exec(command); int exitCode = process.waitFor(); if (exitCode == 0) { System.out.println("截图成功"); } else { System.out.println("截图失败,错误代码:" + ...
例如,PHP中的`system`、`exec`和`passthru`函数,Java的`Runtime.getRuntime().exec(...)`,以及ASP/ASPX的`eval`函数等,都是可能导致此类问题的危险函数。当用户能够控制这些函数的参数时,如果没有进行严格的...
4. **Java源码集成**:在Java项目中,你可以通过调用`Runtime.getRuntime().exec()`方法执行`pdf2swf.exe`,并传递所需的参数。这样可以将PDF转换功能集成到你的应用中。 5. **错误处理和日志记录**:在执行转换时...
- 使用`ProcessBuilder`或`Runtime.getRuntime().exec()`方法来执行PhantomJS命令,打开这个HTML页面,并捕获输出的图片。 - PhantomJS命令可能类似`phantomjs --ssl-protocol=any --web-security=no screenshot....
在Java代码中,可以通过调用`Runtime.getRuntime().exec(cmd)`的方法实现在后台自动将上传的文件转换为SWF格式。对于DOC、PPT等Microsoft Office格式的文档,则可使用Flashpaper工具将其转换为SWF格式,其调用方法与...
- 使用`Runtime.getRuntime().exec()`启动子进程时可能会遇到的问题。 - 需要确保正确处理子进程的输入输出流,防止阻塞。 - **6.2 JDK自带的几个Timer的适用场合** - `java.util.Timer`: 适用于简单的计时任务。 ...