J'ai récemment dû reprendre un projet d'un ancien collègue; Ce projet est écrit en JAVA, utilise Java Web-Start et utilise une bibliothèque Java légère (org.apache.catalina.startup.Tomcat).Java Portable Tomcat créer des répertoires sur le bureau
Chaque fois que le serveur Tomcat démarre et que j'interagis pour la première fois avec les applications Web, il crée 3 répertoires (store, sys, temp) sur le bureau Windows. Lorsque j'examine une installation Tomcat normale, ces répertoires existent dans le répertoire tomcatHome \ bin \.
Question
Est-ce que quelqu'un sait comment rediriger la création de ces répertoires à mon répertoire C: \ TomcatHome \?
Voici un extrait de mon code:
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.loader.WebappLoader;
...
// Define the user.dir directory.
System.setProperty("user.dir", "C:\\TomcatHome");
// Print out the user.dir and user.home system variables.
System.out.println("user.dir = " + System.getProperty("user.dir"));
System.out.println("user.home = " + System.getProperty("user.home"));
...
Tomcat m_tomcat = new Tomcat();
m_tomcat.setBaseDir("C:\\TomcatHome");
m_tomcat.setPort(5009);
m_tomcat.getHost().setDeployOnStartup(true);
m_tomcat.getHost().setAutoDeploy(true);
m_tomcat.getHost().setAppBase("C:\\TomcatHome\\webapps");
m_tomcat.getServer().setPort(5109);
m_tomcat.getServer().setShutdown("SHUTDOWN");
...
// Add abc web-application to Tomcat.
Context ctx = m_tomcat.addWebapp(null, "/abc", "abc");
ctx.setLoader(new WebappLoader(class.getClassLoader()));
// Add xyz web-application to Tomcat.
ctx = m_tomcat.addWebapp(null, "/xyz", xyz);
ctx.setLoader(new WebappLoader(class.getClassLoader()));
// Add ROOT folder to Tomcat.
ctx = m_tomcat.addWebapp(null, "", "ROOT");
ctx.setLoader(new WebappLoader(class.getClassLoader()));
...
m_tomcat.start();
Ce code imprime-out:
user.dir = C:\TomcatHome
user.home = C:\Users\myName
Merci pour votre réponse rapide ... mais mon application utilise un portable/Lite, peu importe ce que vous voulez l'appeler, la version de Tomcat. Il n'y a pas de fichier catalina.sh que je puisse voir :( – MattWeiler
Je devrais ajouter que j'ai essayé de définir la variable système CATALINA_TMPDIR avant d'exécuter l'instance Tomcat, et cela n'a pas changé l'emplacement des fichiers temporaires – MattWeiler
J'ai également essayé de paramétrer les variables système catalina.home et catalina.base en tant qu'états JavaDoc des méthodes Tomcat.setBaseDir (...), mais cela n'a pas changé non plus l'emplacement, je pense que cela peut être un bug dans org.apache.catalina. startup.Tomcat class – MattWeiler