2013-03-15 4 views
0

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 

Répondre

2

Ce sont des répertoires temporaires. Comme vu here vérifiez catalina.sh pour la configuration du dossier temporaire.

+0

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

+0

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

+0

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

Questions connexes