0
我最近不得不從一位老同事接管一個項目;這個項目是用JAVA編寫的,使用Java Web-Start並使用輕型Java庫(org.apache.catalina.startup.Tomcat)。Java便攜式Tomcat在桌面上創建目錄
每當Tomcat服務器啓動時,我首先與Web應用程序交互,就會在Windows桌面上創建3個目錄(存儲,sys,temp)。
當我查看普通的Tomcat安裝時,這些目錄存在於tomcatHome \ bin \目錄中。
問題
有誰知道如何把這些目錄的創建重定向到我C:\ TomcatHome \目錄?
下面是我的代碼片段:
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();
此代碼打印出:
user.dir = C:\TomcatHome
user.home = C:\Users\myName
感謝您的快速回復......但我的應用程序正在使用便攜式/輕量級,無論您想調用它,Tomcat的版本。有沒有catalina.sh文件,我可以看到:( – MattWeiler 2013-03-15 14:40:34
我應該補充一點,我試圖設置CATALINA_TMPDIR系統變量在運行Tomcat實例之前,它並沒有改變臨時文件的位置。 – MattWeiler 2013-03-15 15:02:13
我也嘗試設置catalina.home和catalina.base系統變量作爲Tomcat.setBaseDir(...)方法JavaDoc的狀態,但是這並沒有改變位置,我覺得這可能是org.apache.catalina中的一個錯誤。 startup.Tomcat類 – MattWeiler 2013-03-15 15:25:08