J'ai rencontré un problème en essayant d'exécuter un processus avec Java .. Essayant spécifiquement d'exécuter un serveur Tomcat à partir de mon application Java. J'ai passé des heures à rechercher tous les messages disponibles à la fois sur stackoverflow et google, essayé les différentes solutions et rien ne fonctionne pour moi. Essentiellement, je construis un outil de test automatisé qui permet d'exécuter des tests sur différents sites. J'ai traité à la fois Process et ProcessBuilder pour exécuter cette tâche pour moi. Il existe trois méthodes pour essayer d'appeler le serveur tomcat qui sont présentés ci-dessous:Exécution d'un serveur Tomcat à partir d'une classe Java - ProcessBuilder
public void convertCouncilNameToExecutableProcess(String councilName) {
System.out.println("In convert method");
if (councilName.equalsIgnoreCase("Manchester")) {
councilRunner = "claims_manchestertest";
runCouncilProcess(councilRunner);
} else if (councilName.equalsIgnoreCase("Coventry")) {
councilRunner = "claims_coventrytest";
runCouncilProcess(councilRunner);
}
}
private void runCouncilProcess(String councilName) {
try {
List<String> commandList = buildCommandList(councilName);
ProcessBuilder buildProcess = new ProcessBuilder(commandList);
buildProcess.start();
String output = IOUtils.toString(buildProcess.start().getInputStream());
System.out.println("In process method " + output);
System.out.println("Council: " + councilName + " is running successfully..");
} catch (IOException e) {
e.printStackTrace();
}
}
private List<String> buildCommandList(String councilName) {
List<String> command = new ArrayList<String>();
command.add("sudo");
command.add("/opt");
command.add("/" + councilName);
command.add("/tomcat");
command.add("/bin");
command.add("/becs_tomcat");
command.add(" console");
return command;
}
Comme nous avons plusieurs conseils pour travailler avec, le code doit faire la différence entre ce qui tomcat doit être exécuté en fonction du site pour être testé ...
la sortie lorsque le code a exécuté est la suivante:
manchester
In convert method
In process method
Council: claims_manchestertest is running successfully..
Chacune des méthodes sont exécutées, en me disant le code est frappé mais pas correctement exécuté ...
Je puis vérifier mon terminal pour voir si le serveur tomcat a été initialisées en utilisant:
ps -ax tomcat
Cependant, il n'y a pas de cas en cours d'exécution !? tomcat
Aidez s'il vous plaît! Si vous avez besoin de plus d'informations, s'il vous plaît demandez-moi. Merci.
Merci pour la réponse, mais ce n'est pas vraiment ce que im après (je ne pense pas). L'application n'est pas une application Web et de nombreux exemples que vous avez donnés utilisent des applications Web. – user3008643