- 浏览: 869156 次
- 性别:
- 来自: 上海
最新评论
-
waterflow:
感谢分享
简单的ChartDirector生成图表例子 -
YQuite:
写到最后一种文件才看到这个,洼的一声哭了出来 - - !
java简单解析docx、pptx、xlsx文档 -
q394469902:
Android通过selector改变界面状态 -
db6623919:
直接粘贴别人帖子还是英文的,有意思?
实现RTSP协议的简单例子 -
ykou314:
请问下,这些超级命令,是否需要android root权限,尤 ...
Android系统在超级终端下必会的命令大全(七)
/**
* ShellCommand.java runs commands as if in a native shell instance, and can return stdio.
*
* Code by Kevin(at)TeslaCoil
* Adapted by LouZiffer(at)SDX
*
* Example usage (use cmd.su.runWaitFor instead of cmd.sh.runWaitFor to run as su):
*
* ShellCommand cmd = new ShellCommand();
* CommandResult r = cmd.sh.runWaitFor("/system/bin/getprop wifi.interface");
*
* if (!r.success()) {
* Log.d(MSG_TAG, "Error " + r.stderr);
* } else {
* Log.d(MSG_TAG, "Successfully executed getprop wifi.interface. Result: " + r.stdout);
* this.tetherNetworkDevice = (r.stdout);
* }
*/
package m900.tether.system;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import android.util.Log;
public class ShellCommand {
private static final String TAG = "ShellCommand.java";
private Boolean can_su;
public SH sh;
public SH su;
public ShellCommand() {
sh = new SH("sh");
su = new SH("su");
}
public boolean canSU() {
return canSU(false);
}
public boolean canSU(boolean force_check) {
if (can_su == null || force_check) {
CommandResult r = su.runWaitFor("id");
StringBuilder out = new StringBuilder();
if (r.stdout != null)
out.append(r.stdout).append(" ; ");
if (r.stderr != null)
out.append(r.stderr);
Log.v(TAG, "canSU() su[" + r.exit_value + "]: " + out);
can_su = r.success();
}
return can_su;
}
public SH suOrSH() {
return canSU() ? su : sh;
}
public class CommandResult {
public final String stdout;
public final String stderr;
public final Integer exit_value;
CommandResult(Integer exit_value_in, String stdout_in, String stderr_in)
{
exit_value = exit_value_in;
stdout = stdout_in;
stderr = stderr_in;
}
CommandResult(Integer exit_value_in) {
this(exit_value_in, null, null);
}
public boolean success() {
return exit_value != null && exit_value == 0;
}
}
public class SH {
private String SHELL = "sh";
public SH(String SHELL_in) {
SHELL = SHELL_in;
}
public Process run(String s) {
Process process = null;
try {
process = Runtime.getRuntime().exec(SHELL);
DataOutputStream toProcess = new DataOutputStream(process.getOutputStream());
toProcess.writeBytes("exec " + s + "\n");
toProcess.flush();
} catch(Exception e) {
Log.e(TAG, "Exception while trying to run: '" + s + "' " + e.getMessage());
process = null;
}
return process;
}
private String getStreamLines(InputStream is) {
String out = null;
StringBuffer buffer = null;
DataInputStream dis = new DataInputStream(is);
try {
if (dis.available() > 0) {
buffer = new StringBuffer(dis.readLine());
while(dis.available() > 0)
buffer.append("\n").append(dis.readLine());
}
dis.close();
} catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
if (buffer != null)
out = buffer.toString();
return out;
}
public CommandResult runWaitFor(String s) {
Process process = run(s);
Integer exit_value = null;
String stdout = null;
String stderr = null;
if (process != null) {
try {
exit_value = process.waitFor();
stdout = getStreamLines(process.getInputStream());
stderr = getStreamLines(process.getErrorStream());
} catch(InterruptedException e) {
Log.e(TAG, "runWaitFor " + e.toString());
} catch(NullPointerException e) {
Log.e(TAG, "runWaitFor " + e.toString());
}
}
return new CommandResult(exit_value, stdout, stderr);
}
}
}
发表评论
-
One省电卫士 - Android内核级省电App
2013-02-03 19:32 3573One省电卫士是一款androi ... -
(转)Windows下Eclipse集成Cygwin配置Android NDK环境编译JNI库程序步骤
2012-05-09 16:11 5599前戏准备: 1. 搭建Eclipse Android ... -
Android-Task和Activity相关的一些属性[转]
2011-08-23 09:21 3064android:allowTaskReparenting用来标 ... -
GC_FOR_MALLOC
2011-07-01 11:44 2295GC_FOR_MALLOC means that the ... -
ProgressBar 样式
2011-05-01 23:06 3170The four attributes that you me ... -
Android任务管理终极发布AndTask 3.1(安安任务管理)
2011-04-04 07:50 1668安安任务管理是一款android任务管理软件,可通过手动或自动 ... -
AndMemory 安安内存管理 1.1 发布
2011-03-08 23:42 1900AndMemory is an android memory ... -
预测今年将是android应用普及年和android安全年
2011-03-06 21:53 1982经过去年一年的实践,预测今年将是android应用 ... -
Android之混淆(Obfuscate)
2011-03-06 16:07 2900下载Android安安软件请到:http://code. ... -
Android内存信息
2011-02-21 21:40 2168下载Android安安软件请到:http://code.goo ... -
How to decompile .dex file on Android(转)如何反编译.dex文件
2011-02-20 11:34 2896下载Android安安软件请到:http://code.goo ... -
(转)android JNI 学习笔记1
2011-02-17 10:08 2806下载Android安安软件请到:http://code.goo ... -
(转)Android内存管理机制之一:lowmemory killer
2011-02-15 15:00 2637下载Android安安软件请到 ... -
(转)内存管理Memory Management in Android
2011-02-14 23:31 4194下载Android安安软件请到:http://code.goo ... -
转-Andriod被排出Linux内核的原因
2011-01-12 22:36 1536下载Android安安软件请到:http://code.goo ... -
Ubuntu 开启 Android 的 USB 调试模式
2011-01-06 20:51 7797在Android开发者网站中, 它提供了在 Ubuntu 下实 ... -
解决Conversion to Dalvik format failed: Unable to execute dex: null
2010-12-12 23:17 2407解决Conversion to Dalvik format f ... -
AndBox发布最新版AndRootFile(安安文件管理) 3.0 beta 版
2010-11-27 09:56 1778The ultimate file manager for r ... -
(转)区分Activity的四种加载模式
2010-11-20 10:09 1801在多Activity开发中,有可能是自己应用之间的Activi ... -
(转)Android实现日历
2010-11-09 17:12 2635下载Android安安软件请到:http://code.goo ...
相关推荐
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538) at org.apache.hadoop.util.Shell.run(Shell.java:455).... 这是hadoop本身的一个bug,可以通过修改NativeIO和YARNRunner的源码并替换解决。这是这两个...
一个用于在Android开发中 执行adb shell命令的类,可以以最高权限(su)执行。例如mount命令等
at org.apache.hadoop.util.Shell.runCommand(Shell.java:482) at org.apache.hadoop.util.Shell.run(Shell.java:455) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715) at ...
这个名称暗示了它可能是一个名为CRaSH(Command-line Remote Shell)的工具,版本为1.1.0。CRaSH是一个用于Java应用程序的轻量级命令行接口,允许开发者远程控制和管理Java应用,比如运行JVM上的脚本、查看系统信息...
import java.io.InputStreamReader; import java.io.LineNumberReader; public class RunShell { public static void main(String[] args) { try { // 调用Shell脚本 Process process = Runtime.getRuntime()...
这个文件很可能是Java实现的一个名为CRaSH(Command-line Remote Shell)的开源工具的源代码,版本为1.1.0。CRaSH是一个用于Java应用的轻量级、基于HTTP协议的命令行shell,允许开发者在远程服务器上执行命令和管理...
Please install Java." exit 1 fi # 执行Java程序 java $JAVA_CLASS_PATH $MAIN_CLASS ``` 这个脚本首先通过`command -v java`检查Java是否在PATH环境变量中,然后使用`java`命令执行Java程序。`JAVA_CLASS_PATH...
当`CLASSPATH`没有正确设置时,Java虚拟机可能会抛出`java.lang.ClassNotFoundException`异常。为了避免这种情况发生,需要确保所有必需的JAR文件都已经被正确地添加到了`CLASSPATH`中。 #### 五、总结 通过上述...
ExecuteShell.executeCommand("ls /sdcard", new ShellCallback() { @Override public void onCommandResult(int commandCode, CommandResult result) { // 处理命令结果 } }); ``` 这里使用了异步方式执行`...
command -v java &> /dev/null; then echo "Java 不可用,请确保已安装 Java 并将其添加到 PATH 中。" exit 1 fi ``` 或者,如果你的应用依赖于特定版本的Java,你可以指定版本: ```bash JAVA_VERSION="1.8" ...
import java.io.InputStreamReader; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloCommand extends Activity { private TextView tv; @...
import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class FileCreator { public static void main(String[] args) { String filePath = "/path/to/your/file.txt"; try ...
4. **建立通道**:通过`Session`创建一个`Channel`,通常是`ChannelShell`或`ChannelExec`,前者提供一个交互式的shell,后者用于执行命令。 5. **执行命令**:对于`ChannelExec`,调用`setCommand()`方法指定要执行...
import java.io.BufferedReader; import java.io.InputStreamReader; public class CmdExecutor { public static void main(String[] args) { try { // 创建Runtime实例 Runtime runtime = Runtime.getRuntime...
It is handled by Jad rather than the command shell, so on UNIX the last argument should be single-quoted: jad -o -r -sjava -dsrc 'tree/**/*.class' In a case you want to check the accuracy of the ...
在 Java 中,我们可以使用 `java.lang.Runtime.getRuntime().exec()` 方法来执行外部命令。对于 PowerShell,我们需要先启动 PowerShell 进程,然后执行相应的命令。例如,调用 `powershell.exe -Command "& {Your ...
CRaSH,全称“Command-line Remote Shell”,是一个轻量级的Java库,允许开发者为他们的Java应用程序添加命令行接口,这样就可以通过SSH(Secure SHell)或者其他网络协议远程管理这些应用。这个工具在分布式系统、...
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...