0
我想實現的是從java應用程序安裝一個軟件,該軟件是我創建的
。我有gksudo的許可。然後,我輸入我的通行證,程序開始工作,直到出現yes/no選項。我怎麼能通過這個問題?使用sudo命令從Java項目安裝軟件
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class TestApp {
public static void main(String[] args) {
Process ls = null;
BufferedReader input = null;
String line = null;
try {
ls = Runtime.getRuntime().exec(
new String[] { "gksudo", "apt-get", "install", "PACKAGE" });
try {
ls.wait(6000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ls = Runtime.getRuntime().exec(new String[] { "y" });
input = new BufferedReader(new InputStreamReader(
ls.getInputStream()));
} catch (IOException e1) {
e1.printStackTrace();
System.exit(1);
}
try {
while ((line = input.readLine()) != null) {
System.out.println(line);
}
ls.destroy();
} catch (IOException e1) {
e1.printStackTrace();
System.exit(0);
}
}
}
太謝謝你了。 – user3142980
我意識到我無法正確使用apt-get和gksudo。由於apt-get是CLI工具,因此它不能用於GUI環境(gksudo)。所以,我必須使用sudo和apt-get。但在java程序中,我無法執行sudo命令。 – user3142980
Runtime.exec()通常會生成一個沒有關聯tty的進程,所以sudo不可能打印出密碼查詢。應該可以運行「sudo -A ....」來激活程序sudo可能會開始收集密碼。 – blafasel