我想从java代码中执行一些Unix命令。
我想从java代码运行logcat命令。
我使用以下代码执行此操作:
Process p = Runtime.getRuntime().exec("logcat -v time -f /mnt/sdcard/abc.txt");
上面的代码工作正常。
我想运行其他一些Unix命令的方式相同。
我想运行“WC -l”(读取文件中的行数)命令,我希望将其存储在一些整数中。
以下是我为此编写的代码:
Process p = Runtime.getRuntime().exec("wc -l /mnt/sdcard/abc.txt");
但它低于例外。
08-19 05:34:53.457 W/System.err( 1269): java.io.IOException: Error running exec(). Command: [wc, -l, /mnt/sdcard/abc.txt] Working Directory: null Environment: null
08-19 05:34:53.457 W/System.err( 1269): at java.lang.ProcessManager.exec(ProcessManager.java:224)
08-19 05:34:53.457 W/System.err( 1269): at java.lang.Runtime.exec(Runtime.java:189)
08-19 05:34:53.457 W/System.err( 1269): at java.lang.Runtime.exec(Runtime.java:275)
08-19 05:34:53.457 W/System.err( 1269): at java.lang.Runtime.exec(Runtime.java:210)
请帮助我解决这个问题..
我在SD卡中有一个文件“abc.txt”。
是否可以从android的java代码执行“WC -l”命令。
如果我们可以从java代码执行Unix命令,我们可以使文件操作更容易。
答案 0 :(得分:2)
这里android中的System / bin列表中没有“wc”抱歉
am check_prereq dexopt fsck_msdos iftop keystore_cli mediaserver netd ps rild service stagefright toolbox
applypatch chmod df gdbjithelper ime kill mkdir netstat qemud rm servicemanager start top
applypatch_static chown dhcpcd gdbserver input linker monkey newfs_msdos qemu-props rmdir setconsole stop umount
app_process cmp dmesg getevent insmod ln mount notify racoon rmmod setprop surfaceflinger updater
audioloop dalvikvm dnsmasq getprop installd log mtpd omx_tests radiooptions route sh svc vdc
bmgr date dumpstate gzip ioctl logcat mv ping reboot run-as showlease sync vmstat
bootanimation dbus-daemon dumpsys hd ionice logwrapper nandread pm record schedtest skia_test system_server vold
bugreport dd dvz id iptables ls ndc pppd recovery schedtop sleep tc watchprops
cat debuggerd flash_image ifconfig keystore lsmod netcfg printenv renice sendevent smd testid3 wipe
答案 1 :(得分:1)
在Android上没有wc。
dev:~ njzk2$ ./adb shell wc
wc: not found
但是,你可以考虑打开文件并计算那里的行数。
答案 2 :(得分:0)
您可以尝试 grep
。
以下命令:
$ wc -l filename
输出等效于:
$ grep -c '.*' filename
表达式.*
表示除换行符零次或多次之外的任何字符,适用于各种尺寸的行。
相关: https://unix.stackexchange.com/q/25344
PS:您可以在https://regexr.com/上使用正则表达式并对其进行调试