Java获取项目路径的多种方式

在正常开发的情况下,我们经常会遇到:需要获取指定文件路径,虽然我知道项目在本机的路径,一旦打包发布了,再根据绝对路径获取指定文件,肯定是获取不到的。这时候就需要用java给我们提供的一些获取相对路径方法了。

@Test
public void url() throws IOException {
    // 获取当前项目下路径:方式一
    File file = new File("");
    String filePath = file.getCanonicalPath();
    // 输出:D:\MyCode\log\log4j2-java
    System.out.println(filePath);

    // 获取当前项目下路径:方式二
    // 输出:D:\MyCode\log\log4j2-java
    System.out.println(System.getProperty("user.dir"));

    // 获取类加载的根路径
    String path = this.getClass().getResource("/").getPath().substring(1);
    // 输出:D:/MyCode/log/log4j2-java/target/classes/
    System.out.println(path);

    // 获取当前类的所在工程路径
    String path1 = this.getClass().getResource("").getPath().substring(1);
    // 输出:D:/MyCode/log/log4j2-java/target/classes/com/gzl/cn/
    System.out.println(path1);

    // 获取类加载指定文件或者文件夹路径
    String path2 = this.getClass().getResource("/data/DataConvert.dll").getPath().substring(1);
    System.out.println(path2);

    //获取所有的类路径 包括jar包的路径
    System.out.println(System.getProperty("java.class.path"));
}

这个是我的项目路径。

注意

resources不管是在maven项目还是springboot项目我们都会将它当做资源路径,实际上就是编译后的根路径,他跟java文件夹是同等级别的。

这个是项目编译后的类根路径,从这里可以看出,我这里用的是ide编译器,eclipse也是一样的,实际上在编译器当中,java和resources都是编译后的根路径。

将打包的jar反编译看一下结构:

从这里可以得出结论,其实在编译器当中java和resources文件夹,我们可以理解为虚拟文件夹,实际上打出来的包是不存在这两个文件夹的,他就是代表着项目的根路径。

可能创建普通java项目可能会没有这个资源路径,我们可以在ide当中设置的。通过以下方式就可以将指定文件夹设置为java编译后的根路径。

在这里需要注意一点:我们这个路径是获取编译后的路径,也就是项目打包发布到服务器也能正常获取的,假如你新添加了一个文件,然后想要通过以下方式获取路径,可能会获取不到,因为你需要编译一下,也就是maven clean install一下就可以了。

// 获取类加载指定文件或者文件夹路径
String path2 = this.getClass().getResource("/data/DataConvert.dll").getPath().substring(1);
System.out.println(path2);

补充:Java中获取项目路径

具体代码如下所示:

package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@RestController
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
    @GetMapping("/lujing")
    public void getLujing() throws Exception{
        //当前项目下路径
        File file = new File("");
        String filePath = file.getCanonicalPath();
        System.out.println(filePath);
        //当前项目下xml文件夹
        File file1 = new File("");
        String filePath1 = file1.getCanonicalPath()+File.separator+"xml\\";
        System.out.println(filePath1);
        //获取类加载的根路径
        File file3 = new File(this.getClass().getResource("/").getPath());
        System.out.println(file3);
        //获取当前类的所在工程路径
        File file4 = new File(this.getClass().getResource("").getPath());
        System.out.println(file4);
        //获取所有的类路径 包括jar包的路径
        System.out.println(System.getProperty("java.class.path"));
    }
}

  项目结构:

  输出结果:

1.当前项目下路径E:\Work\example
2.当前项目下xml文件夹E:\Work\example\xml
3.获取类加载的根路径E:\Work\example\out\production\classes
4.获取当前类的所在工程路径E:\Work\example\out\production\classes\com\demo
5.获取所有的类路径 包括jar包的路径D:\Java\jdk1.8.0_65\jre\lib\charsets.jar;D:\Java\jdk1.8.0_65\jre\lib\deploy.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\cldrdata.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\dnsns.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\jaccess.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\jfxrt.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\localedata.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\nashorn.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\sunec.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\sunmscapi.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk1.8.0_65\jre\lib\ext\zipfs.jar;D:\Java\jdk1.8.0_65\jre\lib\javaws.jar;D:\Java\jdk1.8.0_65\jre\lib\jce.jar;D:\Java\jdk1.8.0_65\jre\lib\jfr.jar;D:\Java\jdk1.8.0_65\jre\lib\jfxswt.jar;D:\Java\jdk1.8.0_65\jre\lib\jsse.jar;D:\Java\jdk1.8.0_65\jre\lib\management-agent.jar;D:\Java\jdk1.8.0_65\jre\lib\plugin.jar;D:\Java\jdk1.8.0_65\jre\lib\resources.jar;D:\Java\jdk1.8.0_65\jre\lib\rt.jar;E:\Work\example\out\production\classes;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-actuator\1.5.8.RELEASE\927c40a1af518dc240dfdf7aaf0a9673c3a127c5\spring-boot-starter-actuator-1.5.8.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-thymeleaf\1.5.9.RELEASE\f1a07e590d7742b7c57367ba23a3c0eecb491d48\spring-boot-starter-thymeleaf-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\1.5.9.RELEASE\bda9733d5e6ba6d1a97deead1738713dc0631b3e\spring-boot-starter-web-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-data-jpa\1.5.9.RELEASE\8628320876aa12cc406216523effe954fbd354c0\spring-boot-starter-data-jpa-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-test\1.5.9.RELEASE\b5adf6fbf53be00b7ae52f657d564122edbe5156\spring-boot-starter-test-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-actuator\1.5.8.RELEASE\aac530fe877ed91c92831019755c49f29b08e6\spring-boot-actuator-1.5.8.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\4.3.13.RELEASE\87a095c7a1d13fe433ae6712787238c1dbaa6919\spring-webmvc-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\4.3.13.RELEASE\7cd084992d546165ede3e99bc31ee49c937f0ce7\spring-web-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-jpa\1.11.9.RELEASE\64c80f12361d5b74cf98a3433b59a5c961d78d38\spring-data-jpa-1.11.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-test\4.3.13.RELEASE\f4ff71b0d628d37f334d4f1f197c1b8cea364d01\spring-test-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-aop\1.5.9.RELEASE\fab419df8d7a13968a51ebfcbcad7ef320d66184\spring-boot-starter-aop-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test-autoconfigure\1.5.9.RELEASE\b428495e25b0531b2a977f51c5d29011c817b8ee\spring-boot-test-autoconfigure-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test\1.5.9.RELEASE\7e604d56325f04a8b89a280e647746fc69e5a21f\spring-boot-test-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-jdbc\1.5.9.RELEASE\6769ecea55e952afb64f17975638c5afd1e59ef3\spring-boot-starter-jdbc-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\1.5.9.RELEASE\6bfb34db2715ee86c6e2337fa145650588b4b1b3\spring-boot-starter-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\1.5.9.RELEASE\88dd18bdaf317ae40971573a051fd47265f2ed39\spring-boot-autoconfigure-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\1.5.9.RELEASE\f472cdf948288796fb31e0bb03f6e7b022b763a0\spring-boot-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\4.3.13.RELEASE\6ab1c189a13182fa3256f6bbc68fafdaf8f5a19e\spring-context-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\4.3.13.RELEASE\61f427b55951f59b50f3c2bd0de3c48960e2a342\spring-aop-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-orm\4.3.13.RELEASE\382d3ce044204947f8f2b3fa67a665d4e2bd346f\spring-orm-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jdbc\4.3.13.RELEASE\68e95c2a065641559c7dab7b605bc5847ab026ad\spring-jdbc-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-commons\1.13.9.RELEASE\3910a598235d2e9c1ca56f34c5e62bb5ce23778\spring-data-commons-1.13.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-tx\4.3.13.RELEASE\6ebf7b3f2099fa884038d9d7bd44817ebd9c5b4a\spring-tx-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\4.3.13.RELEASE\8613a7077722f1d97f8cb3fea4b0b40bfadf4496\spring-beans-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\4.3.13.RELEASE\da22bf7df1262e429b49653be6cd5b89b6affe5e\spring-expression-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\4.3.13.RELEASE\eea18d7f4d01f1baa1b6728b678b5a6fe23c61f6\spring-core-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.7\8de00e382a817981b737be84cb8def687d392963\log4j-api-2.7.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-tomcat\1.5.9.RELEASE\4615056f8a2bcad03ba8cdf410419ee3d101c5bb\spring-boot-starter-tomcat-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hibernate\hibernate-validator\5.3.6.Final\4c730be8bf55a8e9a61e79a2f2c079abf48b718\hibernate-validator-5.3.6.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.8.10\f7b83cb2bc4b88d53961e749e1ad32f49ef017b7\jackson-databind-2.8.10.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hibernate\hibernate-entitymanager\5.0.12.Final\302a526f5058290e9cbd719a5caf9f248d344719\hibernate-entitymanager-5.0.12.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hibernate\hibernate-core\5.0.12.Final\e58bf1c660e6706d8e2cbb53bae110f574366102\hibernate-core-5.0.12.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\javax.transaction\javax.transaction-api\1.2\d81aff979d603edd90dcd8db2abc1f4ce6479e3e\javax.transaction-api-1.2.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aspects\4.3.13.RELEASE\c91788e6b7c431379d0f7fe5f85f427d7e3f01ae\spring-aspects-4.3.13.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\com.jayway.jsonpath\json-path\2.2.0\22290d17944bd239fabf5ac69005a60a7ecbbbcb\json-path-2.2.0.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\junit\junit\4.12\2973d150c0dc1fefe998f834810d68f278ea58ec\junit-4.12.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.assertj\assertj-core\2.6.0\b532c3fc4f66bcfee4989a3514f1cd56203a33ad\assertj-core-2.6.0.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-core\1.10.19\e8546f5bef4e061d8dd73895b4e8f40e3fe6effe\mockito-core-1.10.19.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-library\1.3\4785a3c21320980282f9f33d0d1264a69040538f\hamcrest-library-1.3.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.skyscreamer\jsonassert\1.4.0\9cdbb373a06f6513e51e8c545ee6a5e981463edb\jsonassert-1.4.0.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf-spring4\2.1.6.RELEASE\a18784dab5e9337a53ce3213b205f927217849f2\thymeleaf-spring4-2.1.6.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\nz.net.ultraq.thymeleaf\thymeleaf-layout-dialect\1.4.0\8d7810c069ed1534b9631fb1e85c35973546086\thymeleaf-layout-dialect-1.4.0.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-websocket\8.5.23\52f07abcae10dc7e1764304b0877def175c2c833\tomcat-embed-websocket-8.5.23.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\8.5.23\79261793a47f507890ee08f749b9d81774e4f7f0\tomcat-embed-core-8.5.23.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\8.5.23\98d979cde444dffa6d434c8377d0123b2dfa614c\tomcat-embed-el-8.5.23.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\javax.validation\validation-api\1.1.0.Final\8613ae82954779d518631e05daa73a6a954817d5\validation-api-1.1.0.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hibernate.common\hibernate-commons-annotations\5.0.1.Final\71e1cff3fcb20d3b3af4f3363c3ddb24d33c6879\hibernate-commons-annotations-5.0.1.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.3.0.Final\3616bb87707910296e2c195dc016287080bba5af\jboss-logging-3.3.0.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.3.1\2ad2fd09dcf5607ca96f8ef432096a96986c40a\classmate-1.3.1.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.8.0\45b426f7796b741035581a176744d91090e2e6fb\jackson-annotations-2.8.0.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.8.10\eb21a035c66ad307e66ec8fce37f5d50fd62d039\jackson-core-2.8.10.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.aspectj\aspectjweaver\1.8.13\ad94df2a28d658a40dc27bbaff6a1ce5fbf04e9b\aspectjweaver-1.8.13.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.tomcat\tomcat-jdbc\8.5.23\6036400a8f2d90dd3ae3a4d09e5136c56002887b\tomcat-jdbc-8.5.23.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.hibernate.javax.persistence\hibernate-jpa-2.1-api\1.0.0.Final\5e731d961297e5a07290bfaf3db1fbc8bbbf405a\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf\2.1.6.RELEASE\c362b4ecbeddc86a0cb7e767a88ce27e9c8147e6\thymeleaf-2.1.6.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.javassist\javassist\3.18.1-GA\d9a09f7732226af26bf99f19e2cffe0ae219db5b\javassist-3.18.1-GA.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\antlr\antlr\2.7.7\83cd2cd674a217ade95a4bb83a8a14f351f48bd0\antlr-2.7.7.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.jboss\jandex\2.0.0.Final\3e899258936f94649c777193e1be846387ed54b3\jandex-2.0.0.Final.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\dom4j\dom4j\1.6.1\5d3ccc056b6f056dbf0dddfdf43894b9065a8f94\dom4j-1.6.1.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\1.5.9.RELEASE\30fd62a1ce9639759d90d49608501082314c1628\spring-boot-starter-logging-1.5.9.RELEASE.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.1.11\ccedfbacef4a6515d2983e3f89ed753d5d4fb665\logback-classic-1.1.11.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.slf4j\jcl-over-slf4j\1.7.25\f8c32b13ff142a513eeb5b6330b1588dcb2c0461\jcl-over-slf4j-1.7.25.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\1.7.25\af5364cd6679bfffb114f0dec8a157aaa283b76\jul-to-slf4j-1.7.25.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.slf4j\log4j-over-slf4j\1.7.25\a87bb47468f47ee7aabbd54f93e133d4215769c3\log4j-over-slf4j-1.7.25.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.25\da76ca59f6a57ee3102f8f9bd9cee742973efa8a\slf4j-api-1.7.25.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\net.minidev\json-smart\2.2.1\5b9e5df7a62d1279b70dc882b041d249c4f0b002\json-smart-2.2.1.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.objenesis\objenesis\2.1\87c0ea803b69252868d09308b4618f766f135a96\objenesis-2.1.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\com.vaadin.external.google\android-json\0.0.20131108.vaadin1\fa26d351fe62a6a17f5cda1287c1c6110dec413f\android-json-0.0.20131108.vaadin1.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy\2.4.3\9c8664435dd00c5316a344eea4b86dc46601d416\groovy-2.4.3.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.tomcat\tomcat-annotations-api\8.5.23\aaf17df9fe0240e9e9d5375d24d5f177174b73d9\tomcat-annotations-api-8.5.23.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.apache.tomcat\tomcat-juli\8.5.23\98e7f0610b7b2fb8303f11be0210e3f5a56a7d55\tomcat-juli-8.5.23.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\xml-apis\xml-apis\1.0.b2\3136ca936f64c9d68529f048c2618bd356bf85c9\xml-apis-1.0.b2.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\net.minidev\accessors-smart\1.1\a527213f2fea112a04c9bdf0ec0264e34104cd08\accessors-smart-1.1.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\5.0.3\dcc2193db20e19e1feca8b1240dbbc4e190824fa\asm-5.0.3.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.17\7a27ea250c5130b2922b86dea63cbb1cc10a660c\snakeyaml-1.17.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.1.11\88b8df40340eed549fb07e2613879bf6b006704d\logback-core-1.1.11.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\ognl\ognl\3.0.8\37e1aebfde7eb7baebc9ad4f85116ef9009c5fc5\ognl-3.0.8.jar;C:\Users\LIX\.gradle\caches\modules-2\files-2.1\org.unbescape\unbescape\1.1.0.RELEASE\ab0db4fe0a6fa89fb8da2a40008a4e63a7f3f5b9\unbescape-1.1.0.RELEASE.jar;D:\IntelliJ IDEA 2017.2.6\lib\idea_rt.jar

到此这篇关于Java获取项目路径的文章就介绍到这了,更多相关Java项目路径内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java 获取项目文件路径实现方法

    this.getClass().getResource("/").getPath().substring(1)获得路径为E:/myeclipse/test/WebRoot/WEB-INF/classes/,即主目录. this.getClass().getResource("").getPath().substring(1)获得路径为E:/myeclipse/test/WebRoot/WEB-INF/classes/net/hncu/db/,即本文件的相对路径. t

  • Java项目中获取路径的绝对路径问题和相对路径问题

    目录 1.目录结构 2.class.getResource(Stringname) 3.class.getClassLoader().getResource(Stringname) 3.1区别 3.2ClassLoader 3.3关于URL的一些知识 前言: 在纯 Java 代码里 我们一般都会用​​class.getResource(String name)​​​ 或者 ​​class.getClassLoader().getResource(String name)​​ 两种方法获取文件的地

  • JAVA获取当前项目和文件所在路径的实例代码

    直接上代码: //当前项目下路径 File file = new File(""); String filePath = file.getCanonicalPath(); System.out.println(filePath); //当前项目下xml文件夹 File file1 = new File(""); String filePath1 = file1.getCanonicalPath()+File.separator+"xml\\";

  • java中获取类加载路径和项目根路径的5种方式分析

    复制代码 代码如下: package my; import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { public static void main(String[] args) {         MyUrlDemo muDemo = new MyUrlDemo();         try {             muDemo.showURL();    

  • Java获取项目路径的多种方式

    在正常开发的情况下,我们经常会遇到:需要获取指定文件路径,虽然我知道项目在本机的路径,一旦打包发布了,再根据绝对路径获取指定文件,肯定是获取不到的.这时候就需要用java给我们提供的一些获取相对路径方法了. @Test public void url() throws IOException { // 获取当前项目下路径:方式一 File file = new File(""); String filePath = file.getCanonicalPath(); // 输出:D:\M

  • C++获取项目路径的两种方式详解

    目录 一.Cmake传参:适用于简单场景 二.从环境变量读取:适合脚本场景 组合实例代码: 总结 在某些特定的条件运行时不能使用局部地址,例如ci流程等,这就要求读取文件时必需使用全局地址,但是在项目路径不定的情况下很难知道某个文件的全局地址,目前存在两种获取项目路径的方式,其中一种更适用于ci流程. 一.Cmake传参:适用于简单场景 在Cmake中,很容易知道项目的地址,例如 ${PROJECT_SOURCE_DIR} 可以在cmakelists中,将该值赋值给变量,例如MAIN_PATH:

  • 完美解决Java获取文件路径出现乱码的问题

    在Java中有时获取文件路径,获取的路径中存在中文或者是空格的时候,路径出现乱码.这个问题困扰了我好久,用过各种的转码都无济于事.在后来终于解决了,在这里和大家分享一下,其实也就是加一行代码的问题. 我在项目的是使用 String path = this.getClass().getClassLoader().getResource("/").getPath().substring(1); 这样来获得当前类的文件路径的.但是这样得到的是乱码.后来经过跟踪 在this.getClass(

  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径

    java获取系统路径字体.得到某个目录下的所有文件名.获取当前路径 复制代码 代码如下: package com.liuxing.test; import java.awt.GraphicsEnvironment;import java.io.File;public class Test { private static GraphicsEnvironment environment; /**  * @param args  */ public static void main(String[]

  • java获取各种路径的基本方法

    本文实例为大家分享了java获取不同路径的方法,供大家参考,具体内容如下 package com.ygh.blog.realpath; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; /** * 获取java下面的路径的演示 */ import org.junit.Test; public c

  • java获取Date时间的各种方式汇总

    java获取Date时间的各种方式为大家分享如下 常用的时间获取方式 public class DateUtils { /** * 获取时间戳 * 输出结果:1438692801766 */ @Test public void getTimeStamp() { Date date = new Date(); long times = date.getTime(); System.out.println(times); //第二种方法: new Date().getTime(); } /** *

  • 简单了解java获取类的3种方式

    这篇文章主要介绍了java获取类的3种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.Class.forName("全类名") 将字节吗文件加载进内存,返回Class对象,多用于配指文件,将类名定义在配置文件中,便于利用java的反射机制生成类对象,加载类. //加载一个用户实体类UserBean Class c1 = Class.forName("com.test.UserBean"): 2.类名.c

  • 浅谈java对象之间相互转化的多种方式

    第一种:使用org.apache.commons.beanutils.PropertyUtils.copyProperties()拷贝一个bean中的属性到另一个bean中,第一个参数是目标bean,第二个参数是源bean. 特点: 1.它的性能问题相当差 2.PropertyUtils有自动类型转换功能,而java.util.Date恰恰是其不支持的类型 3.PropertyUtils支持为null的场景: public static void copyProperties(Object de

  • Java 获取properties的几种方式

    spring下获取Properties方式 比如已有的commonConfig.properties main.db.driverClassName=com.mysql.jdbc.Driver main.db.url=jdbc\:mysql\://cloudpkdbrw.xxx.com\:3306/huagang?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull main.db.use

  • JAVA发送HTTP请求的多种方式详细总结

    目录 1. HttpURLConnection 2. HttpClient 3. CloseableHttpClient 4. okhttp 5. Socket 6. RestTemplate 总结 程序员日常工作中,发送http请求特别常见.本文以Java为例,总结发送http请求的多种方式. 1. HttpURLConnection 使用JDK原生提供的net,无需其他jar包,代码如下: import com.alibaba.fastjson.JSON; import java.io.Bu

随机推荐