자바코드로 터미널명령어 실행하려고합니다

위 분류에 속하지 않는 모든 주제

Moderator: Dry8r3aD

Post Reply
kjh
Posts: 1
Joined: 2018/02/17 Sat 9:16 pm

자바코드로 터미널명령어 실행하려고합니다

Post by kjh » 2018/02/17 Sat 9:21 pm

http://madnix.tistory.com/entry/Java%EC ... ory=657360

import java.io.BufferedReader;

import java.io.InputStream;
import java.io.InputStreamReader;

public class ShellCommander {
public static void main(String[] args) throws Exception {
String command = "ls -al";
// 이 부분에 실행할 리눅스 Shell 명령어를 입력하면 된다. (여기선 ls -al 명령어 입력)
shellCmd(command);
}
public static void shellCmd(String command) throws Exception {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(command);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
}
}



출처: http://madnix.tistory.com/entry/Java에서- ... ory=657360 [NExT맨 - 코드와 친숙해지자!]

코드를 참고하여 자바코드로 터미널에서 명령어를 실행하여야 하는데
bluetoothctl을 입력한후에 bluetoothctl 명령어가 실행되면 remove * 라던가 scan on 같은 bluetoothctl의 명령어를 실행하려고 하는데
shellCmd("bluetoothctl");
shellCmd("scan on");
이렇게 입력해버리면 scan on 명령이 bluetoothctl가 실행이 안된 상태에서 동작하는거 같습니다.
괜찮은 방법이 생각이 안나서 글 남겨 봅니다.. 도와주세요 ㅠㅠ

workman729
Posts: 562
Joined: 2014/02/12 Wed 5:02 pm

Re: 자바코드로 터미널명령어 실행하려고합니다

Post by workman729 » 2018/02/17 Sat 11:05 pm

bluetoothctl은 옵션이 agent, version, help 외엔 없지 않나요?

저는 자바는 모르겠지만 bluetooth를 enable 하시려면 systhemd 를 이용하면 되지 않을까요?
요즘은 배포반 모두가 지원하는데 말입니다. 올드 보이라면 과거의 업스타트 명령을 활용 하시구요?

bluetoothctl 명령이 정확하다면 특별히 버전을 확인할 필요는 없을 것으로 보고
--agent 옵션 뒤에 객체를 활용 하시면 될 것으로 보입니다.

이를테면 bluetoothctl --agent scan on 처럼요....^^

DH.Choi
Posts: 96
Joined: 2013/02/06 Wed 1:56 am

Re: 자바코드로 터미널명령어 실행하려고합니다

Post by DH.Choi » 2018/02/18 Sun 8:52 am

터미널 명령어 자체를 한 덩어리로 묶어서 순차적으로 실행하는 방법도 가능할 것 같습니다.
https://opentutorials.org/course/2598/15818

Post Reply