2016-08-11 71 views
-2

我想要一個腳本來在android手機上勾選首選項時執行腳本。切換完成,但現在執行這個:如何將bash腳本語言轉換爲java

if (preference == mRandomizeMac) { 
     SystemProperties.set(RANDOMIZE_MAC_PERSIST_PROP, (Boolean) newValue ? "1" : "0"); 

取而代之的系統屬性,我想有執行下面的腳本:

macaddr="$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')" 
echo $macaddr > /sys/devices/fb000000.qcom,wcnss-wlan/wcnss_mac_addr 

回答

1

假設你的意思Java而不是javascript,由於你的例子的語法。

您可以使用Runtime.getRuntime().exec(String)執行shell命令。嘗試將您的命令傳遞給該方法。如果這不起作用,您可以嘗試通過結構爲["/bin/sh", "-c", **command**]String[]

+0

感謝您的回答。不幸的是,我不是一名程序員,而是一名自學成才的業餘愛好者。我可以正確實施提交,解決衝突,迴應錯誤,但我無法創建語言。所以,如果你能向我展示你提到的兩種方法的詳細例子,我將不勝感激。我想在.java文件中傳遞該腳本...提前致謝。 –

+0

請允許我以這種方式解釋它。您不能將您的bash腳本「轉換」爲Java。你可以做的是從Java代碼執行shell命令。你的bash腳本只是執行shell命令的一種奇特方式。因此,您需要研究如何從Java執行shell命令(使用'Runtime.getRuntime()。exec'調用)並獲取這些命令的輸出。我無法爲你做所有的研究,但我可以給你一些關於從哪裏開始的指導。 –

+0

我沒有實現Runtime.getRuntime ...現在,編譯器不喜歡實際Shell腳本中的括號:非法轉義字符:echo $(dd if =/dev/urandom bs = 1024 count = 1 2>/dev/null | md5sum | sed's/^ \(.. \)\(.. \)\(.. \)\(.. \)\(.. \)\(.. \)。* $/\ 1 :\ 2:\ 3:\ 4:\ 5:\ 6 /')「}); 我正在說括號.. \ –