我想從我的Java應用程序運行ApacheDS實例。
我用ScriptWrapper類的這種run()
方法來執行隨機附帶ApacheDS中的腳本來運行它:如何從另一個Java應用程序運行Java應用程序並在主程序返回後保持運行?
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()]));
}
}
}
但問題是,當Tomcat在此應用程序運行,終止和/或ScriptWrapper是垃圾收集,ApacheDS的實例也終止。如何保持它活着?
編輯:謝謝你的回答。我已決定以不同的方式解決問題,並使用二進制ApacheDS安裝腳本來守護進程。
問題,請分享解決方案。 –