Worüber wir heute sprechen, ist das dynamische Festlegen der Umgebungsvariablen des Linux-Systems über Java-Code. Ehrlich gesagt habe ich in den letzten zwei Tagen lange auf Google gesucht und nichts gefunden Finden Sie heraus, wie es in der Praxis funktioniert. Aber nach langer Suche habe ich es einfach gelöst.
Java-Code
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"); } }
Tatsächlich , der wichtigste Satz ist dieser
String[] commonds = {"sh","-c","export JAVA_HOME= /usr/java/jdk;echo $JAVA_HOME"};
So schreiben Sie diesen Befehl . Andere sind bei Google zu finden. Und laut meinem Test können diese nicht zusammen geschrieben werden:
String tmp_run_cmd = "sh -c 'export JAVA_HOME=/usr/java/jdk;echo $JAVA_HOME'" //Das ist nicht möglich..
Mehr dynamische Einstellungen durch Java-Code. Für Artikel zu Umgebungsvariablen in Linux-Systemen beachten Sie bitte die chinesische PHP-Website!