티스토리 뷰

Java를 이용해서 프로그램 실행할 때 절대경로를 입력하고 실행하려 했으나

계속해서 수행되지 않길래 문제점을 찾아보니

디렉토리를 변경하는 cd 명령어는 쉘 내장 명령어이기 때문에 별개의 실행파일로 존재하지 않는다고한다.

export 또한 위와 같다.

 

따라서 ProcessBuilder를 사용한다고 하면 ProcessBuilder.directory()를 사용하여

해당 명령어를 수행할 path를 지정해주면 된다. 

 

public synchronized void callYCSBCmd() throws IOException, InterruptedException {
		String path = "/home/sb/YCSB";
		
		List runCmd = new ArrayList();
		runCmd.add("./bin/ycsb");
		runCmd.add("run");
		runCmd.add("basic");
		runCmd.add("-P");
		runCmd.add("workloads/workloada");
		
		ProcessBuilder runBuilder = null;
		Process prun = null;
		String str1 = null;
		String str2 = null;
		
		try {
			runBuilder = new ProcessBuilder(runCmd);
			runBuilder.directory(new File(path));
			prun = runBuilder.start();
			BufferedReader stdOut = new BufferedReader(new InputStreamReader(prun.getInputStream()));

			while((str1 = stdOut.readLine()) != null) {
				System.out.println(str1);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함