我想在Go语言的Android SDK平台工具中执行dexdump.
我已经设置了PATH变量.(我使用的是Ubuntu 12.04)
这是我的代码:
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
)
func main() {
path, err := exec.LookPath("dexdump")
if err != nil {
log.Fatal(err)
}
fmt.Println(path)
cmd := exec.Command(path)
var out bytes.Buffer
cmd.Stdout = &out
err2 := cmd.Run()
if err2 != nil {
log.Fatal(err2)
}
fmt.Printf("%q\n", out.String())
}
Run Code Online (Sandbox Code Playgroud)
结果:/ home/gunwoo/android-sdk-linux/platform-tools/dexdump
2012/10/15 16:44:39退出状态2
退出状态1
为什么去找不到路径?
您没有为该exec.Run dexdump命令提供任何参数,这可能会生成如下错误:
dexdump: no file specified
dexdump: [-f] [-h] dexfile...
-d : disassemble code sections
-f : display summary information from file header
-h : display file header details
-C : decode (demangle) low-level symbol names
-S : compute sizes only
Run Code Online (Sandbox Code Playgroud)
运行以下版本的程序时,您获得了什么输出?
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
)
func main() {
path, err := exec.LookPath("dexdump")
if err != nil {
log.Fatal("LookPath: ", err)
}
fmt.Println(path)
cmd := exec.Command(path)
var out bytes.Buffer
cmd.Stdout = &out
err = cmd.Run()
fmt.Printf("%s\n", out.String())
if err != nil {
log.Fatal("Run: ", err)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14468 次 |
| 最近记录: |