오늘 이야기할 내용은 Java 코드를 통해 Linux 시스템의 환경 변수를 동적으로 설정하는 것입니다. 사실 지난 이틀 동안 Google에서 오랫동안 검색했지만 찾지 못했습니다. 실제로는 그다지 유용하지 않을 수도 있지만 오랫동안 검색해서 해결했습니다.
Java 코드
import java.io.BufferedInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; public class ExecuteCmd { /** * @param args */ public static void main(String[] args) { String[] commonds = {"sh","-c","export JAVA_HOME=/usr/java/jdk;echo $JAVA_HOME"}; RunSystemCommand(commonds, null); } public static void RunSystemCommand(String[] command, File file) { if (command != null && !command.equals("")) { try { Process ps = null; if (file != null) ps = Runtime.getRuntime().exec(command, null, file); else ps = Runtime.getRuntime().exec(command); String message = loadStream(ps.getInputStream()); String errorMeg = loadStream(ps.getErrorStream()); System.out.println(message); System.out.println("-------"); System.out.println(errorMeg); try { ps.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } } private static String loadStream(InputStream in) throws IOException { int ptr = 0; in = new BufferedInputStream(in); StringBuffer buffer = new StringBuffer(); while ((ptr = in.read()) != -1) { buffer.append((char) ptr); } return new String(buffer.toString().getBytes("ISO-8859-1"), "GBK"); } }
사실입니다. , 가장 중요한 문장은
String[] commonds = {"sh","-c","export JAVA_HOME= /usr/java/jdk;echo $JAVA_HOME"}
이 명령을 작성하는 방법입니다. 다른 것들은 Google에서 찾을 수 있습니다. 그리고 제 테스트에 따르면 이것들은 함께 작성할 수 없습니다. 예를 들어
String tmp_run_cmd = "sh -c 'export JAVA_HOME=/usr/java/jdk;echo $JAVA_HOME'"; //이건 불가능합니다..
Java 코드를 통해 더욱 동적인 설정 Linux 시스템의 환경변수 관련 글은 PHP 중국어 홈페이지를 주목해주세요!