如何从Java或Scala程序在Linux Ubuntu中启动tomcat

时间:2015-09-16 11:53:40

标签: linux tomcat nginx

我需要从scala或java程序启动tomcat,nginx,kafka等,我能够通过java程序检查它们是否正在使用ps-ef| grep nameofservice但是如果它们没有运行我希望它们能够从java或scala程序开始,我为tomcat尝试了这个

val pr = Runtime.getRuntime.exec(Array[String]("/home/administrator/Desktop/apache-tomcat-8.0.5/bin","-c","echo def123@| sudo -S startup.sh"))

但它不起作用。

2 个答案:

答案 0 :(得分:2)

如果您使用的是Windows操作系统,从Java可以实现如下所示

String startupBat = "c:\Software\Tomcat.version\bin\startup.bat";
Process child = Runtime.getRuntime().exec(command);

对于Linux你必须使用sh脚本

try{
String startupSh = "/home/Software/Tomcat.version/bin/startup.sh";
Process child = Runtime.getRuntime().exec(startupSh );
}catch(Exception e){
     e.printStackTrace();
   } 

另一个解决方案就是这个

Runtime runtime = Runtime.getRuntime();
Process p1 = runtime.exec("cmd /c start " + PATH_TO_TOMCAT + "//catalina.bat run ", null, new File(PATH_TO_TOMCAT));

您可以在此处查看Java Code Examples for org.apache.catalina.startup.Tomcat

答案 1 :(得分:-1)

在Java中,您需要使用ProcessBuilder:

ProcessBuilder builder = new ProcessBuilder(command, option1, option2);

// Optional redirect
// builder.redirectOutput(file);

Process p = builder.start();

更多信息: java.lang.ProcessBuilder