bonjour,
Je fais une page web qui lance un exécutable sur le serveur Tomcat8 avec cette méthode:
public Process exec(String[] cmdarray);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public class SilentStart extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String[] command = {"C:\\moh_SH_AW-test\\moh_spearhead_server.exe", "+exec", "anubismap.cfg", "+set", "net_IP", "xxx.xxx.xxx.xxx", "+set", "net_port", "12212"};
Runtime r = Runtime.getRuntime();
PrintWriter out = response.getWriter();
try {
//r.exec(command);
Process p = r.exec(command);
if(p.isAlive()) out.println("ç'a alive!");
// p.waitFor();
} catch (Exception e) {
out.println(e.getLocalizedMessage());
}
}
} |
Le process se lance bien et tous les paramètres sont pris en compte, la ligne de commande est bien conforme dans le Gestionnaire de Tâches.

Le problème est que le propriétaire du processus (en bleu) est "system" alors que je voudrais qu(il soit sous la session Administrateur, comme quand je lance l'exe à la main (en pas bleu). J'ai défini l'exe à "exécuter en tant qu'administrateur", sans effet.
Y a-t-il une solution Java, ou dois-je investiguer des commandes système que je ne maïtrise pas?
Merci pour l'aide ou les conseils!
Partager