Je travaille sur un programme Java dans lequel je dois appeler un autre programme Java en utilisant le générateur de processus car il utilise un environnement d'exécution Java distinct.Process Builder Problème
est le programme batch ici qui appelle ce programme et fonctionne correctement:
cd C:\apps\Project_name\bin\
C:\Progra~1\Java\jre1.6.0_03\bin\java -Xms512m -Xmx1024m
-cp ../lib/spring-1.2.2.jar;../lib/log4j-1.2.8.jar;../lib/commons-logging-1.0.4.jar;../lib/wrapper.jar
com.project.main.MainProgramLauncher arg1 arg2
Maintenant, je déclare mon quelque chose comme code ceci:
ProcessBuilder builder = new ProcessBuilder(
"java",
"-Xms512m",
"-Xmx1024m",
"-cp ../lib/spring-1.2.2.jar;../lib/log4j-1.2.8.jar;"+
"../lib/commons-logging-1.0.4.jar;../lib/wrapper.jar",
"com.project.main.MainProgramLauncher arg1 arg2 ...argN"
);
Map<String, String> environment = builder.environment();
environment.put("path", ";"); // Clearing the path variable;
environment.put("path", java_bin_location+";");
Process javap = builder.start();
InputStreamReader tempReader = new InputStreamReader(
new BufferedInputStream(javap.getInputStream())
);
BufferedReader reader = new BufferedReader(tempReader);
while (true) {
String line = reader.readLine();
if (line == null)
break;
System.out.println(line);
}
Mais ce ne est pas l'exécution de la façon dont il devrait être. Le programme plante tout de suite. Y a-t-il quelque chose de différent que je devrais faire? Veuillez suggérer.
(J'ai cassé certaines lignes pendant le formatage, ce qui devrait permettre de voir plus facilement ce qui se passe.) –