1. 程式人生 > 實用技巧 >Java獲取專案路徑的方法彙總

Java獲取專案路徑的方法彙總

Java獲取專案路徑的方法彙總(依據可查)

依據

在Java程式中想得到當前專案的路徑, 那麼一定要有一個資源知道或者擁有這個路徑, 只要知道了這個資源, 那麼路徑我們怎麼都可以拿得到

  1. 工具IDEA
  2. 專案根路徑 E:/java/Study/javaSE/base/out/production/base/

擁有專案路徑的資源

1. 根路徑在哪

以IDEA為例

2. 知道根路徑的資源

第一, 我自己建立的類肯定知道根路徑

//        /E:/java/Study/javaSE/base/out/production/base/
//        System.out.println(FlowDemo1.class.getResource("/").getPath());

//        /E:/java/Study/javaSE/base/out/production/base/twice/flow/
//        System.out.println(FlowDemo1.class.getResource("").getPath());

第二, 我自己建立的各種資源肯定知道

//        空
//        System.out.println(new File("").getPath());

//        E:\java\Study\javaSE\base
//        System.out.println(new File("").getAbsolutePath());

//        E:\java\Study\javaSE\base
//        System.out.println(new File("").getCanonicalPath());

第三, 載入我建立的類的類載入器肯定也知道

//        file:/E:/java/Study/javaSE/base/out/production/base/
//        System.out.println(FlowDemo1.class.getClassLoader().getResource(""));

//        null
//        System.out.println(FlowDemo1.class.getClassLoader().getResource("/"));

第四, 已有的類試試看是否知道

//        file:/E:/java/Study/javaSE/base/out/production/base/
//        System.out.println(Class.class.getResource("/"));
//        System.out.println(String.class.getResource("/"));

//        null
//        System.out.println(Class.class.getResource(""));
//        System.out.println(String.class.getResource(""));

從這看出, 已有的類也是知道專案的根路徑

第五, 系統配置應該知道全域性的和區域性的

區域性的有

//        E:\java\Study\javaSE\base
//        System.out.println(System.getProperty("user.dir"));
//        System.out.println(System.getProperty("java.class.path"));

全部有

{java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=F:\Java\DevTool\JDK\jdk\jre\bin, java.vm.version=25.221-b11, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=;, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg=sun.io, user.country=CN, user.script=, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=E:\java\Study\javaSE\base, java.runtime.version=1.8.0_221-b11, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=F:\Java\DevTool\JDK\jdk\jre\lib\endorsed, os.arch=amd64, java.io.tmpdir=C:\Users\xx\AppData\Local\Temp\, line.separator=
, java.vm.specification.vendor=Oracle Corporation, user.variant=, os.name=Windows 10, sun.jnu.encoding=GBK, java.library.path=F:\Java\DevTool\JDK\jdk\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;F:\Java\Linux\xmanager\Xlpd 6\;F:\Java\Linux\xmanager\Xftp 6\;F:\Java\Linux\xmanager\Xshell 6\;F:\Java\Linux\xmanager\Xmanager 6\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;F:\Java\ExtendTool\git\Git\cmd;F:\ToolSoftware\Microsoft VS Code\bin;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Common Files\Autodesk Shared\;F:\BIM\GisBim\Node\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;F:\Java\DevTool\JDK\jdk\bin;F:\Java\DevTool\JDK\jdk\jre\bin;C:\Program Files\Bandizip\;C:\Users\xx\AppData\Roaming\npm;., java.specification.name=Java Platform API Specification, java.class.version=52.0, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.version=10.0, user.home=C:\Users\xx, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=UTF-8, java.specification.version=1.8, java.class.path=F:\Java\DevTool\JDK\jdk\jre\lib\charsets.jar;F:\Java\DevTool\JDK\jdk\jre\lib\deploy.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\access-bridge-64.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\cldrdata.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\dnsns.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\jaccess.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\jfxrt.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\localedata.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\nashorn.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\sunec.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\sunjce_provider.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\sunmscapi.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\sunpkcs11.jar;F:\Java\DevTool\JDK\jdk\jre\lib\ext\zipfs.jar;F:\Java\DevTool\JDK\jdk\jre\lib\javaws.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jce.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jfr.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jfxswt.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jsse.jar;F:\Java\DevTool\JDK\jdk\jre\lib\management-agent.jar;F:\Java\DevTool\JDK\jdk\jre\lib\plugin.jar;F:\Java\DevTool\JDK\jdk\jre\lib\resources.jar;F:\Java\DevTool\JDK\jdk\jre\lib\rt.jar;E:\java\Study\javaSE\base\out\production\base;F:\Java\DevTool\idea\IntelliJ IDEA 2019.3.2\lib\idea_rt.jar, user.name=xx, java.vm.specification.version=1.8, sun.java.command=twice.flow.FlowDemo1, java.home=F:\Java\DevTool\JDK\jdk\jre, sun.arch.data.model=64, user.language=zh, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.8.0_221, java.ext.dirs=F:\Java\DevTool\JDK\jdk\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext, sun.boot.class.path=F:\Java\DevTool\JDK\jdk\jre\lib\resources.jar;F:\Java\DevTool\JDK\jdk\jre\lib\rt.jar;F:\Java\DevTool\JDK\jdk\jre\lib\sunrsasign.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jsse.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jce.jar;F:\Java\DevTool\JDK\jdk\jre\lib\charsets.jar;F:\Java\DevTool\JDK\jdk\jre\lib\jfr.jar;F:\Java\DevTool\JDK\jdk\jre\classes, java.vendor=Oracle Corporation, file.separator=\, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=amd64}

總結

只要找到擁有根路徑的資源, 那麼一定可以從中獲取專案路徑