Java 응용 프로그램에서 소프트웨어를 설치하려면
을 작성하십시오. 국선도에서 허가를 받았습니다. 그런 다음 패스를 입력하고 예/아니요 옵션이 나타날 때까지 이 시작되었습니다. 이 질문에 어떻게 대답 할 수 있습니까?Java 프로젝트에서 sudo 명령을 사용하여 소프트웨어 설치
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
gksudo와 함께 apt-get를 제대로 사용할 수 없다는 것을 깨달았습니다. apt-get은 CLI 도구이기 때문에 GUI 환경 (gksudo)에서는 사용할 수 없습니다. 그래서 sudo를 apt-get와 함께 사용해야한다. 하지만 자바 프로그램에서 sudo 명령을 실행할 수 없습니다. – user3142980
Runtime.exec()는 일반적으로 연관된 tty가없는 프로세스를 생성하므로 sudo는 암호 쿼리를 출력 할 수 없습니다. "sudo -A ...."를 실행하여 sudo가 암호를 수집하기 시작할 수있는 프로그램을 활성화 할 수 있어야합니다. – blafasel