My Yahoo!������������²��� Yahoo!\\\\¼\Ð

shellJAVA������\·\��\���\³\���\���\���������¼���¹��ԏ��¹�����������ď�����������\���\�����¡�
JAVA�돪�³�돢����\·\��\�������������������\³\���\���\�����¡�³�돪����\³\���\���\�����¡�\���\���\���\���\«���¼\�������������³«¼���½��������������������¡���Ï�����������¼�ޏ��̏�����������������\���\�������������������·���¹½�����Џ��·������µ������̏��¹��������¡�

�돪�²¼��¡�\µ\���\��\���������\³���¼\���
package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;

public class ShellCommandExecuter implements Runnable {

	private StringWriter sWriter; // ½Ð�������µ�����������ď�����»��⏪�я�����¼��؏��ޏ����������������ď�����������\���\���\���\��\���\���
	private PrintWriter pWriter; // ½Ð�������µ�����������ď�����»��⏪�я�����¼��؏��ޏ����������������ď�����������\���\���\���\��\���\���
	private BufferedReader buffReader; // ������½���½Ð����
	private BufferedReader errorBuffReader; // \��\������¼½Ð����

	public static void main(String[] args) {
		ShellCommandExecuter sce = new ShellCommandExecuter();
		try{
			String result = sce.doExec(new String[]{"/bin/bash", "-c", "cd ../../ ; /bin/ls"}); // ¼�����돪�����¼���¹��ԏ��¹������\³\���\���\���
			System.out.println(result); // ������½���½Ð����������\��\������¼½Ð��������������������
		}catch(Exception e){
			e.printStackTrace();
		}
	}

	/**
	* ³�돪����\³\���\���\���������¼���¹��ԏ��¹��������¡�
	* �����只��·���¼�돢�������������¹�����ď�����������\���\���\�ߏ��·������������
	* @param command ¼���¹��ԏ��¹������³�돪����\³\���\���\���
	* @return String ³�돪����\³\���\���\������̏�����½���½Ð����������½Ð�������¹������¼���¹���·���²���
	* @throws IOException
	*/
	public String doExec(String command) throws IOException{
		return doExec(new String[]{command});
	}

	/**
	* ³�돪����\³\���\���\���������¼���¹��ԏ��¹��������¡�
	* @param commands ¼���¹��ԏ��¹������³�돪����\³\���\���\�����������؏����ҏ������돫⏢ď�ԏ����ҏ��������¹�����ď��������������只��·���¼�돢��
	* @return String ³�돪����\³\���\���\������̏�����½���½Ð����������½Ð�������¹������¼���¹���·���²���
	* @throws IOException
	*/
	public String doExec(String[] commands) throws IOException{
		// \���\���\���\���\���\���\���\���\��\���\���¼���������
		Runtime rt = Runtime.getRuntime();
		// ¼���¹��ԏ��·������������������\���\��\���\���\���\���������»������������·������\³\���\���\���������¼���¹��ԏ��������Џ����я�����¹������������»������\���\¹�������������­�����Џ�ď�ԏ����ҏ�����²������¹����������̏���ߏ�����������
		Process proc = rt.exec(commands, null, new File(Thread.currentThread().getContextClassLoader().getResource("").getPath()));
		// ¼���¹���·���²���������¼��������������Џ�����\���\���\���\��\���\���������돫�����
		buffReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
		errorBuffReader = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
		sWriter = new StringWriter();
		pWriter = new PrintWriter(sWriter);

		// ½Ð����·���²��������ҏ�����������½��쏢���������������������������ԏ�������¡�
		Thread th = new Thread(this);
		th.start();
		try {
			th.join();
		} catch (InterruptedException e) {
			throw new IOException(e);
		}finally{
			buffReader.close();
			errorBuffReader.close();
			pWriter.close();
		}
		// ·���²���������¼���������
		return sWriter.toString();
	}

	/**
	* \³\���\���\���������¼���¹���·���²��������ҏ�����������½Ð���¹��¡�
	* @see java.lang.Runnable#run()
	*/
	public void run() {
		try {
			while(buffReader.ready()) {
				pWriter.println(buffReader.readLine());
			}
			while(errorBuffReader.ready()) {
				pWriter.println(errorBuffReader.readLine());
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

����cd��¡ߏ���\���\��\���\���\���\��\���\���\���\���\³\���\���\����������������������Ï�����������������\³\���\���\������������«�����ҏ��½����������������¼���¹��ԏ��·�����������Ï��������¹������������\��\������¼������������������������������¡�\·\��\���������\³\���\���\���¼���¹��ԏ�����»��������Џ��¹�����������������������������Ώ����ď�������¡�

�����������¹������Blog���������³���������������«�����������������Ï��¾�������� ��� ďµ\\\\\\­\\돢��¡�叢\\\돪¼ 򏪱µ»½\\\ Linux��¡�