Próbuję uruchomić instancję ApacheDS z mojej aplikacji java.
używam takiej metody run()
klasy ScriptWrapper wykonać skrypt, który jest dostarczany z ApacheDS aby ją uruchomić:Jak uruchomić aplikację java z innej aplikacji java i utrzymać ją po powrocie programu głównego?
public class ScriptWrapper implements Serializable {
private String scriptPath;
protected Process run(List<String> params) throws IOException {
LOGGER.debug("Executing script="+scriptPath);
params.add(0, scriptPath);
if(workDir != null) {
return Runtime.getRuntime().exec(params.toArray(new String[params.size()]), envp.toArray(new String[envp.size()]), new File(workDir));
} else {
return Runtime.getRuntime().exec(params.toArray(new String[params.size()]));
}
}
}
Ale problemem jest to, że kiedy kocur, na którym to aplikacja działa, jest zakończony i/lub ScriptWrapper jest śmieci zebrane, instancja ApacheDS również wygasa. Jak utrzymać to przy życiu?
EDYCJA: Dziękuję za odpowiedzi. Postanowiłem w inny sposób zająć się problemem i zdememonizować proces za pomocą skryptu rozpoczynającego binarną instalację ApacheDS.
Problem rozwiązany, jeśli tak, proszę podziel się rozwiązaniem. –