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���������³���������������«�����������������Ï��¾�������� ��� ��¡���¡�