Melaksanakan Aplikasi Java dalam Proses Berasingan, Dipermudahkan
Keupayaan untuk melaksanakan aplikasi Java dalam proses berasingan, bebas daripada lokasinya , ialah ciri berharga untuk keserasian merentas platform. Walau bagaimanapun, pendekatan tradisional menggunakan Runtime.getRuntime().exec(COMMAND) boleh menjadi platform khusus.
Untuk menangani isu ini, pertimbangkan penyelesaian dipertingkat berikut:
public final class JavaProcess { private JavaProcess() {} public static int exec(Class klass, List<String> args) throws IOException, InterruptedException { // Determine platform-independent paths String javaHome = System.getProperty("java.home"); String javaBin = javaHome + File.separator + "bin" + File.separator + "java"; String classpath = System.getProperty("java.class.path"); String className = klass.getName(); // Create process builder ProcessBuilder builder = new ProcessBuilder(); // Set command and arguments builder.command().addAll(Arrays.asList(javaBin, "-cp", classpath, className)); builder.command().addAll(args); // Execute and return exit status Process process = builder.inheritIO().start(); process.waitFor(); return process.exitValue(); } }
Penggunaan:
int status = JavaProcess.exec(MyClass.class, args);
Pendekatan ini memanfaatkan sifat sistem Java untuk mendapatkan laluan yang diperlukan dan menggunakan ProcessBuilder untuk penciptaan proses bebas platform. Ia menerima nama kelas yang layak sepenuhnya dan menyediakan tingkah laku agnostik platform yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Aplikasi Java dalam Proses Berasingan untuk Keserasian Merentas Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!