0
그래서 cmd 프로그램 CD를 사용하여 Java 프로그램이 Java 프로그램의 원본 폴더를 반환하는 동안 생각했습니다. 이제 String을 파싱하고 사용자의 사용자 이름을 가져올 수 있어야합니다. 여기에 의미하는 바가 있습니다.Java 파싱 및 변경 CD
아래 코드가 작동하는 경우 C : \ Users \ Bob \ Desktop \ newfolder \ JavaProgs \ prog1 ... 위의 사용자 이름 Bob과 같은 동적 변수를 문자열에서 구문 분석하려면 어떻게해야합니까?
public static void cdir() throws IllegalCommandException {
try{
String command = "cd";
String s = get_commandline_results(command);
String[] temp1 = s.split("\n");
LinkedList<String> temp2 = new LinkedList<String>(Arrays.asList(temp1));
System.out.println(temp2.get(0));
filePath = temp2.get(0);
}
catch(Exception e){
e.printStackTrace();
}
}
public static String get_commandline_results(String cmd)
throws IOException, InterruptedException, IllegalCommandException{
if (!authorizedCommand(cmd)) {
throw new IllegalCommandException();
}
String result = "";
final Process p = Runtime.getRuntime().exec(String.format("cmd /c %s", cmd));
final ProcessResultReader stderr = new ProcessResultReader(p.getErrorStream(), "STDERR");
final ProcessResultReader stdout = new ProcessResultReader(p.getInputStream(), "STDOUT");
stderr.start();
stdout.start();
final int exitValue = p.waitFor();
if (exitValue == 0){
result = stdout.toString();
}
else{
result = stderr.toString();
}
return result;
}
public static boolean authorizedCommand(String cmd){
if (cmd.equals("cd"))
return true;
return false;
}
을이 종속 높은 배포합니다. –
알아 내고 싶은 사용자 이름 인 경우 더 좋은 방법이 있습니다. UNIX뿐만 아니라 Windows는 이에 대한 환경 변수를 제공합니다. – qqilihq
@SotiriosDelimanolis 잘 보입니다. 복제하려는 것은 설치 프로그램이 작동하는 방식입니다. 나는 실제로 어떻게되는지 모르지만, 당신은 저를 도울 수 있습니까? – Arc