关于tomcat的路径(WEB-INF)的一些路径的记录

本文详细介绍了在使用Eclipse将项目部署到Tomcat时,项目被意外部署到工作空间目录而非预设的webapps目录的问题,并提供了解决方案。包括获取项目工程名以下目录的方法,以及在不同环境(虚拟机环境和服务器环境)下获取正确路径的策略。

eclipse中项目部署到tomcat时,tomcat的目录webapps中没有项目,而是部署到了eclipse中的工作空间的一个目录中,路径为:

E:\.metadata\.plugins\org.eclipse.wst.server.core\tmp1


关于路径,不同的环境,获取的路径也不一样:

main环境:虚拟机环境,获取的路径就是工作空间的路径

servlet环境:服务器环境,获取的路径就是服务器的路径

获取项目工程名以下的目录:

相关代码:

获取项目工程名后的绝对路径:

public String getWebInfPath(){  
        URL url = getClass().getProtectionDomain().getCodeSource().getLocation();  
        String path = url.toString();  
        System.out.println("URL="+path);
        int index = path.indexOf("WEB-INF");  
          
        if(index == -1){  
            index = path.indexOf("classes");  
        }  
          
        if(index == -1){  
            index = path.indexOf("bin");  
        }  
          
        path = path.substring(0, index);  
          
        if(path.startsWith("zip")){//当class文件在war中时,此时返回zip:D:/...这样的路径  
            path = path.substring(4);  
        }else if(path.startsWith("file")){//当class文件在class文件中时,此时返回file:/D:/...这样的路径  
            path = path.substring(6);  
        }else if(path.startsWith("jar")){//当class文件在jar文件里面时,此时返回jar:file:/D:/...这样的路径  
            path = path.substring(10);   
        }  
        try {  
            path =  URLDecoder.decode(path, "UTF-8");  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
          
        return path;  
    }  

当前类的绝对路径:

String className = TestClass.class.getName().replace('.', '/')+".class";
        URL url = TestClass.class.getClassLoader().getResource(className);
        System.out.println(url.getFile());

WEB-INF的绝对路径:

String path = getServletContext().getRealPath("/WEB-INF"); 

D:\jdk1.852\bin\java.exe "-javaagent:D:\IDEA\IntelliJ IDEA 2025.2.3\lib\idea_rt.jar=53279" -Dfile.encoding=UTF-8 -classpath D:\jdk1.852\jre\lib\charsets.jar;D:\jdk1.852\jre\lib\deploy.jar;D:\jdk1.852\jre\lib\ext\access-bridge-64.jar;D:\jdk1.852\jre\lib\ext\cldrdata.jar;D:\jdk1.852\jre\lib\ext\dnsns.jar;D:\jdk1.852\jre\lib\ext\jaccess.jar;D:\jdk1.852\jre\lib\ext\jfxrt.jar;D:\jdk1.852\jre\lib\ext\localedata.jar;D:\jdk1.852\jre\lib\ext\nashorn.jar;D:\jdk1.852\jre\lib\ext\sunec.jar;D:\jdk1.852\jre\lib\ext\sunjce_provider.jar;D:\jdk1.852\jre\lib\ext\sunmscapi.jar;D:\jdk1.852\jre\lib\ext\sunpkcs11.jar;D:\jdk1.852\jre\lib\ext\zipfs.jar;D:\jdk1.852\jre\lib\javaws.jar;D:\jdk1.852\jre\lib\jce.jar;D:\jdk1.852\jre\lib\jfr.jar;D:\jdk1.852\jre\lib\jfxswt.jar;D:\jdk1.852\jre\lib\jsse.jar;D:\jdk1.852\jre\lib\management-agent.jar;D:\jdk1.852\jre\lib\plugin.jar;D:\jdk1.852\jre\lib\resources.jar;D:\jdk1.852\jre\lib\rt.jar;D:\dygz\web\WEB-INF\lib\slf4j-api-1.7.5.jar;D:\dygz\web\WEB-INF\lib\slf4j-log4j12-1.7.5.jar;D:\dygz\web\WEB-INF\lib\spring-jdbc-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\activation-1.1.1.jar;D:\dygz\web\WEB-INF\lib\activiti-bpmn-converter-5.14.jar;D:\dygz\web\WEB-INF\lib\activiti-bpmn-model-5.14.jar;D:\dygz\web\WEB-INF\lib\activiti-engine-5.14.jar;D:\dygz\web\WEB-INF\lib\activiti-spring-5.14.jar;D:\dygz\web\WEB-INF\lib\analyzer-2012_u6.jar;D:\dygz\web\WEB-INF\lib\antlr-2.7.7.jar;D:\dygz\web\WEB-INF\lib\aopalliance-1.0.jar;D:\dygz\web\WEB-INF\lib\apache-ant-zip-2.3.jar;D:\dygz\web\WEB-INF\lib\asm-4.2.jar;D:\dygz\web\WEB-INF\lib\aspectjrt-1.7.4.jar;D:\dygz\web\WEB-INF\lib\aspectjweaver-1.7.4.jar;D:\dygz\web\WEB-INF\lib\avro-1.6.3.jar;D:\dygz\web\WEB-INF\lib\bcpg-jdk15on-1.62.jar;D:\dygz\web\WEB-INF\lib\bcprov-jdk15on-1.70.jar;D:\dygz\web\WEB-INF\lib\BJCA_LOG.jar;D:\dygz\web\WEB-INF\lib\cglib-3.1.jar;D:\dygz\web\WEB-INF\lib\ckfinder-2.3.jar;D:\dygz\web\WEB-INF\lib\ckfinderplugin-fileeditor-2.3.jar;D:\dygz\web\WEB-INF\lib\ckfinderplugin-imageresize-2.3.jar;D:\dygz\web\WEB-INF\lib\classmate-0.8.0.jar;D:\dygz\web\WEB-INF\lib\commands-3.3.0-I20070605-0010.jar;D:\dygz\web\WEB-INF\lib\common-3.6.200-v20130402-1505.jar;D:\dygz\web\WEB-INF\lib\commons-beanutils-1.8.3.jar;D:\dygz\web\WEB-INF\lib\commons-codec-1.8.jar;D:\dygz\web\WEB-INF\lib\commons-collections-3.2.1.jar;D:\dygz\web\WEB-INF\lib\commons-collections4-4.1.jar;D:\dygz\web\WEB-INF\lib\commons-dbcp-1.4.jar;D:\dygz\web\WEB-INF\lib\commons-digester-1.7.jar;D:\dygz\web\WEB-INF\lib\commons-email-1.2.jar;D:\dygz\web\WEB-INF\lib\commons-fileupload-1.3.jar;D:\dygz\web\WEB-INF\lib\commons-io-2.4.jar;D:\dygz\web\WEB-INF\lib\commons-jexl-2.0.1.jar;D:\dygz\web\WEB-INF\lib\commons-lang-2.6.jar;D:\dygz\web\WEB-INF\lib\commons-lang3-3.1.jar;D:\dygz\web\WEB-INF\lib\commons-logging-1.1.1.jar;D:\dygz\web\WEB-INF\lib\commons-pool-1.5.4.jar;D:\dygz\web\WEB-INF\lib\cxf-core-3.2.0.jar;D:\tomcat\apache-tomcat-8.5.100;D:\dygz\web\WEB-INF\lib\jdom.jar;D:\dygz\web\WEB-INF\lib\ojdbc6.jar;D:\dygz\web\WEB-INF\lib\jstl-1.2.jar;D:\dygz\web\WEB-INF\lib\msyh_pdf.jar;D:\dygz\web\WEB-INF\lib\poi-3.16.jar;D:\dygz\web\WEB-INF\lib\sqljdbc4.jar;D:\dygz\web\WEB-INF\lib\iPeportFz.jar;D:\dygz\web\WEB-INF\lib\SVSClient.jar;D:\dygz\web\WEB-INF\lib\guava-18.0.jar;D:\dygz\web\WEB-INF\lib\junit-4.11.jar;D:\dygz\web\WEB-INF\lib\jxls-2.4.0.jar;D:\dygz\web\WEB-INF\lib\mail-1.4.7.jar;D:\dygz\web\WEB-INF\lib\zt-zip-1.6.jar;D:\dygz\web\WEB-INF\lib\dom4j-1.6.1.jar;D:\dygz\web\WEB-INF\lib\dozer-5.4.0.jar;D:\dygz\web\WEB-INF\lib\druid-1.0.1.jar;D:\dygz\web\WEB-INF\lib\jedis-2.1.0.jar;D:\dygz\web\WEB-INF\lib\log4j-1.2.17.jar;D:\dygz\web\WEB-INF\lib\pdfbox-3.0.5.jar;D:\dygz\web\WEB-INF\lib\wsdl4j-1.6.3.jar;D:\dygz\web\WEB-INF\lib\xmpbox-3.0.5.jar;D:\dygz\web\WEB-INF\lib\fontbox-3.0.5.jar;D:\dygz\web\WEB-INF\lib\jcommon-1.0.0.jar;D:\dygz\web\WEB-INF\lib\joda-time-2.1.jar;D:\dygz\web\WEB-INF\lib\mybatis-3.2.3.jar;D:\dygz\web\WEB-INF\lib\paranamer-2.3.jar;D:\dygz\web\WEB-INF\lib\xmpcore-5.1.2.jar;D:\dygz\web\WEB-INF\lib\xstream-1.4.3.jar;D:\dygz\web\WEB-INF\lib\fastjson-1.2.9.jar;D:\dygz\web\WEB-INF\lib\iTextAsian-2.1.jar;D:\dygz\web\WEB-INF\lib\pinyin4j-2.5.0.jar;D:\dygz\web\WEB-INF\lib\poi-ooxml-3.16.jar;D:\dygz\web\WEB-INF\lib\sitemesh-2.4.2.jar;D:\dygz\web\WEB-INF\lib\standard-1.1.2.jar;D:\dygz\web\WEB-INF\lib\stax-api-1.0.1.jar;D:\dygz\web\WEB-INF\lib\xmlbeans-2.3.0.jar;D:\dygz\web\WEB-INF\lib\jxls-poi-1.0.12.jar;D:\dygz\web\WEB-INF\lib\kingbase8-8.6.0.jar;D:\dygz\web\WEB-INF\lib\pdfbox-io-3.0.5.jar;D:\dygz\web\WEB-INF\lib\preflight-3.0.5.jar;D:\dygz\web\WEB-INF\lib\shiro-web-1.2.6.jar;D:\dygz\web\WEB-INF\lib\solr-core-3.6.2.jar;D:\dygz\web\WEB-INF\lib\stax2-api-3.1.4.jar;D:\dygz\web\WEB-INF\lib\swt-3.3.0-v3346.jar;D:\dygz\web\WEB-INF\lib\xml-apis-1.3.03.jar;D:\dygz\web\WEB-INF\lib\xmlpull-1.1.3.1.jar;D:\dygz\web\WEB-INF\lib\xmlworker-5.5.8.jar;D:\dygz\web\WEB-INF\lib\xpp3_min-1.1.4c.jar;D:\dygz\web\WEB-INF\lib\groovy-all-1.8.6.jar;D:\dygz\web\WEB-INF\lib\hutool-all-5.5.2.jar;D:\dygz\web\WEB-INF\lib\jfreechart-1.0.3.jar;D:\dygz\web\WEB-INF\lib\shiro-core-1.2.6.jar;D:\dygz\web\WEB-INF\lib\solr-solrj-3.6.2.jar;D:\dygz\web\WEB-INF\lib\xercesImpl-2.8.1.jar;D:\dygz\web\WEB-INF\lib\cxf-rt-wsdl-3.2.0.jar;D:\dygz\web\WEB-INF\lib\ehcache-web-2.0.4.jar;D:\dygz\web\WEB-INF\lib\freemarker-2.3.19.jar;D:\dygz\web\WEB-INF\lib\hamcrest-core-1.3.jar;D:\dygz\web\WEB-INF\lib\jxls-jexcel-1.0.6.jar;D:\dygz\web\WEB-INF\lib\jxls-reader-2.0.2.jar;D:\dygz\web\WEB-INF\lib\lucene-core-3.6.2.jar;D:\dygz\web\WEB-INF\lib\lucene-misc-3.6.2.jar;D:\dygz\web\WEB-INF\lib\postgresql-42.2.9.jar;D:\dygz\web\WEB-INF\lib\sqlite-jdbc-3.8.7.jar;D:\dygz\web\WEB-INF\lib\ehcache-core-2.6.6.jar;D:\dygz\web\WEB-INF\lib\jackson-core-2.2.1.jar;D:\dygz\web\WEB-INF\lib\jul-to-slf4j-1.7.5.jar;D:\dygz\web\WEB-INF\lib\lucene-facet-3.6.2.jar;D:\dygz\web\WEB-INF\lib\pdfbox-tools-3.0.5.jar;D:\dygz\web\WEB-INF\lib\shiro-spring-1.2.6.jar;D:\dygz\web\WEB-INF\lib\UserAgentUtils-1.9.jar;D:\dygz\web\WEB-INF\lib\esspdf-client-1.6.2.jar;D:\dygz\web\WEB-INF\lib\hibernate-4.dialect.jar;D:\dygz\web\WEB-INF\lib\iTextAsianCmaps-2.1.jar;D:\dygz\web\WEB-INF\lib\jasperreports-6.3.1.jar;D:\dygz\web\WEB-INF\lib\javassist-3.15.0-GA.jar;D:\dygz\web\WEB-INF\lib\lucene-memory-3.6.2.jar;D:\dygz\web\WEB-INF\lib\poi-scratchpad-3.16.jar;D:\dygz\web\WEB-INF\lib\shiro-ehcache-1.2.6.jar;D:\dygz\web\WEB-INF\lib\snappy-java-1.0.4.1.jar;D:\dygz\web\WEB-INF\lib\ssoclient-2.1.1-3.1.jar;D:\dygz\web\WEB-INF\lib\thumbnailator-0.4.2.jar;D:\dygz\web\WEB-INF\lib\woodstox-core-5.0.3.jar;D:\dygz\web\WEB-INF\lib\jcl-over-slf4j-1.7.5.jar;D:\dygz\web\WEB-INF\lib\log4jdbc-remix-0.2.7.jar;D:\dygz\web\WEB-INF\lib\lucene-smartcn-3.6.2.jar;D:\dygz\web\WEB-INF\lib\lucene-spatial-3.6.2.jar;D:\dygz\web\WEB-INF\lib\lucene-stempel-3.6.2.jar;D:\dygz\web\WEB-INF\lib\mybatis-spring-1.2.1.jar;D:\dygz\web\WEB-INF\lib\xmlschema-core-2.2.2.jar;D:\dygz\web\WEB-INF\lib\lucene-grouping-3.6.2.jar;D:\dygz\web\WEB-INF\lib\lucene-kuromoji-3.6.2.jar;D:\dygz\web\WEB-INF\lib\lucene-phonetic-3.6.2.jar;D:\dygz\web\WEB-INF\lib\jackson-core-asl-1.9.9.jar;D:\dygz\web\WEB-INF\lib\jackson-databind-2.2.1.jar;D:\dygz\web\WEB-INF\lib\javaparser-core-3.18.0.jar;D:\dygz\web\WEB-INF\lib\jboss-logging-3.1.0.GA.jar;D:\dygz\web\WEB-INF\lib\lucene-analyzers-3.6.2.jar;D:\dygz\web\WEB-INF\lib\poi-ooxml-schemas-3.16.jar;D:\dygz\web\WEB-INF\lib\spring-tx-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\draw2d-3.2.100-v20070529.jar;D:\dygz\web\WEB-INF\lib\jackson-mapper-asl-1.8.8.jar;D:\dygz\web\WEB-INF\lib\lucene-highlighter-3.6.2.jar;D:\dygz\web\WEB-INF\lib\metadata-extractor-2.6.2.jar;D:\dygz\web\WEB-INF\lib\protostuff-uberjar-1.1.1.jar;D:\dygz\web\WEB-INF\lib\spring-aop-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\spring-orm-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\spring-oxm-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\spring-web-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\jackson-annotations-2.2.1.jar;D:\dygz\web\WEB-INF\lib\jasperreports-fonts-6.3.1.jar;D:\dygz\web\WEB-INF\lib\lucene-spellchecker-3.6.2.jar;D:\dygz\web\WEB-INF\lib\msm-kryo-serializer-1.8.3.jar;D:\dygz\web\WEB-INF\lib\spring-core-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\spring-test-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\cxf-rt-bindings-soap-3.2.0.jar;D:\dygz\web\WEB-INF\lib\hibernate-core-4.2.0.Final.jar;D:\dygz\web\WEB-INF\lib\jface-3.3.0-I20070606-0010.jar;D:\dygz\web\WEB-INF\lib\solr-analysis-extras-3.6.2.jar;D:\dygz\web\WEB-INF\lib\spring-beans-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\validation-api-1.1.0.Final.jar;D:\dygz\web\WEB-INF\lib\cxf-rt-frontend-jaxws-3.2.0.jar;D:\dygz\web\WEB-INF\lib\mysql-connector-java-5.1.13.jar;D:\dygz\web\WEB-INF\lib\spring-webmvc-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\cxf-rt-frontend-simple-3.2.0.jar;D:\dygz\web\WEB-INF\lib\cxf-rt-transports-http-3.2.0.jar;D:\dygz\web\WEB-INF\lib\hibernate-search-4.2.0.Final.jar;D:\dygz\web\WEB-INF\lib\spring-context-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\cxf-rt-databinding-jaxb-3.2.0.jar;D:\dygz\web\WEB-INF\lib\hibernate-ehcache-4.2.0.Final.jar;D:\dygz\web\WEB-INF\lib\jasperreports-functions-6.3.1.jar;D:\dygz\web\WEB-INF\lib\hibernate-xunfad-18.24.RELEASE.jar;D:\dygz\web\WEB-INF\lib\hibernate-validator-5.0.1.Final.jar;D:\dygz\web\WEB-INF\lib\spring-data-redis-1.0.2.RELEASE.jar;D:\dygz\web\WEB-INF\lib\spring-expression-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\hibernate-search-orm-4.2.0.Final.jar;D:\dygz\web\WEB-INF\lib\jasperreports-chart-themes-6.3.1.jar;D:\dygz\web\WEB-INF\lib\hibernate-jpa-2.0-api-1.0.1.Final.jar;D:\dygz\web\WEB-INF\lib\itext-2.1.7.js6-20170307.125214-1.jar;D:\dygz\web\WEB-INF\lib\hibernate-search-engine-4.2.0.Final.jar;D:\dygz\web\WEB-INF\lib\javaparser-symbol-solver-core-3.18.0.jar;D:\dygz\web\WEB-INF\lib\spring-context-support-3.2.5.RELEASE.jar;D:\dygz\web\WEB-INF\lib\jackson-module-jaxb-annotations-2.2.1.jar;D:\dygz\web\WEB-INF\lib\jasperreports-chart-customizers-6.3.1.jar;D:\dygz\web\WEB-INF\lib\hibernate-search-analyzers-4.2.0.Final.jar;D:\dygz\web\WEB-INF\lib\hibernate-spatial-postgis-kingbase-1.1.jar;D:\dygz\web\WEB-INF\lib\org.insightech.er_1.0.0.v20121127-2328.jar;D:\dygz\web\WEB-INF\lib\hibernate-commons-annotations-4.0.1.Final.jar;D:\dygz\web\WEB-INF\lib\jboss-transaction-api_1.1_spec-1.0.0.Final.jar;D:\tomcat\apache-tomcat-8.5.100\lib\el-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\jasper.jar;D:\tomcat\apache-tomcat-8.5.100\lib\ojdbc6.jar;D:\tomcat\apache-tomcat-8.5.100\lib\jsp-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\catalina.jar;D:\tomcat\apache-tomcat-8.5.100\lib\ecj-4.6.3.jar;D:\tomcat\apache-tomcat-8.5.100\lib\jasper-el.jar;D:\tomcat\apache-tomcat-8.5.100\lib\jaspic-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-jni.jar;D:\tomcat\apache-tomcat-8.5.100\lib\catalina-ha.jar;D:\tomcat\apache-tomcat-8.5.100\lib\servlet-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-dbcp.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-jdbc.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-util.jar;D:\tomcat\apache-tomcat-8.5.100\lib\catalina-ant.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-coyote.jar;D:\tomcat\apache-tomcat-8.5.100\lib\websocket-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-de.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-es.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-fr.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-ja.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-ko.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-ru.jar;D:\tomcat\apache-tomcat-8.5.100\lib\annotations-api.jar;D:\tomcat\apache-tomcat-8.5.100\lib\catalina-tribes.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-util-scan.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-websocket.jar;D:\tomcat\apache-tomcat-8.5.100\lib\tomcat-i18n-zh-CN.jar;D:\tomcat\apache-tomcat-8.5.100\lib\catalina-storeconfig.jar com.okflow.modules.exchange.pack.Application 进程已结束,退出代码为 0
最新发布
10-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值