如何从 Java 或 Scala 程序在 Linux Ubuntu 中启动 tomcat
How to start tomcat in Linux Ubuntu from Java or Scala program
我需要从 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"))
但它不起作用。
在 Java 中您需要使用 ProcessBuilder:
ProcessBuilder builder = new ProcessBuilder(command, option1, option2);
// Optional redirect
// builder.redirectOutput(file);
Process p = builder.start();
更多信息:
java.lang.ProcessBuilder
从 Java 如果您使用 Windows OS
,您可以像下面这样实现
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
我需要从 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"))
但它不起作用。
在 Java 中您需要使用 ProcessBuilder:
ProcessBuilder builder = new ProcessBuilder(command, option1, option2);
// Optional redirect
// builder.redirectOutput(file);
Process p = builder.start();
更多信息: java.lang.ProcessBuilder
从 Java 如果您使用 Windows OS
,您可以像下面这样实现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