欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

System.getProperty(user.dir)定位問題解析

 更新時間:2023年05月26日 10:11:25   作者:小風(fēng)呀  
System.getProperty(user.dir) 獲取的是啟動項目的容器位置,用IDEA是項目的根目錄,部署在tomcat上是tomcat的啟動路徑,即tomcat/bin的位置,這篇文章主要介紹了System.getProperty(user.dir)定位問題,需要的朋友可以參考下

System.getProperty(user.dir)定位問題

前言

隨著學(xué)習(xí)java web 的深入學(xué)習(xí),為了鞏固自己的學(xué)習(xí)成果,練習(xí)了一個springboot項目,但在部署的時候發(fā)現(xiàn)了一個問題,即:
System.getProperty(user.dir)定位問題

一、System.getProperty方法

getProperty()這個方法是獲取指定鍵指示的系統(tǒng)屬性的

@Test
    public void test(){
        //獲取所有的屬性
        Properties properties = System.getProperties();
        //遍歷所有的屬性
        for (String key : properties.stringPropertyNames()) {
            //輸出對應(yīng)的鍵和值
            System.out.println(key + "=" + properties.getProperty(key));
        }
    }

結(jié)果如下,具有很多可以讀取的內(nèi)容

java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:\javaweb\jdk1.8.0_101_64\jre\bin
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.script= user.country=CN
sun.java.launcher=SUN_STANDARD sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=E:\7.ProjectCodeSource\jdbc
java.runtime.version=1.8.0_101-b13
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\javaweb\jdk1.8.0_101_64\jre\lib\endorsed
os.arch=amd64 java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator=
java.vm.specification.vendor=Oracle Corporation user.variant=
os.name=Windows 10 sun.jnu.encoding=GBK
java.library.path=C:\javaweb\jdk1.8.0_101_64\bin;
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\Administrator
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=UTF-8
java.specification.version=1.8
user.name=Administrator
java.class.path=E:\7.ProjectCodeSource\jdbc\target\test-classes;
java.vm.specification.version=1.8 sun.arch.data.model=64
java.home=C:\javaweb\jdk1.8.0_101_64\jre
sun.java.command=org.eclipse.jdt.internal.junit.runner.RemoteTestRunner
-version 3 -port 57975 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader
-loaderpluginname org.eclipse.jdt.junit4.runtime -test com.jim.jdbc.JDBCTest:test java.specification.vendor=Oracle
Corporation user.language=zh awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode
java.version=1.8.0_101
java.ext.dirs=C:\javaweb\jdk1.8.0_101_64\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path=C:\javaweb\jdk1.8.0_101_64\jre\lib\resources.jar;C:\javaweb\jdk1.8.0_101_64\jre\lib\rt.jar;C:\javaweb\jdk1.8.0_101_64\jre\lib\sunrsasign.jar;
java.vendor=Oracle Corporation
file.separator=\
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64

二、踩坑的屬性user.dir

1.在IDEA中System.getProperty(user.dir)的值

public static void main(String[] args) {
        System.out.println(System.getProperty("user.dir"));
    }

結(jié)果為:D:\IDEA\workplace\music

2.部署到tomcat中的System.getProperty(user.dir)

結(jié)果為:/opt/apache-tomcat-9.0.0.M26/bin/

總結(jié)

System.getProperty(user.dir) 獲取的是啟動項目的容器位置,用IDEA是項目的根目錄,部署在tomcat上是tomcat的啟動路徑,即tomcat/bin的位置

System.getProperty("user.dir")的理解

System.getProperty("user.dir"),都說獲得的是“工作目錄”,有老鐵們在意這個,工作目錄怎么理解嗎?我這做了個簡單的測試。

但是,你把這個配置文件放在項目的根目錄下面,也就是 說你的項目文件夾下面直接放一個配置文件,這個時候,就可以,啥前綴不加的,就可以讀取到,這個配置文件啦。

但是,這么放置配置文件,好像有點不合適。

那么,這個路徑究竟該如何寫,才不會報錯呢?

1,在 java project 中的配置文件讀取,項目打包是jar類型的。

System.getProperty("user.dir");
解釋:
默認定位到的當(dāng)前用戶目錄("user.dir")(即工程根目錄)
JVM就可以據(jù)"user.dir" + "你自己設(shè)置的目錄" 得到完整的路徑(即絕對路徑)
這有個前提,你的工程不是web項目,不然,這個返回值就不是項目的根目錄啦,是tomcat的bin目錄。

到此這篇關(guān)于System.getProperty(user.dir)定位問題的文章就介紹到這了,更多相關(guān)System.getProperty(user.dir)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在java代碼中獲取JVM參數(shù)的方法

    在java代碼中獲取JVM參數(shù)的方法

    下面小編就為大家?guī)硪黄趈ava代碼中獲取JVM參數(shù)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 解讀JDK、JRE、JVM的區(qū)別與聯(lián)系

    解讀JDK、JRE、JVM的區(qū)別與聯(lián)系

    這篇文章主要介紹了解讀JDK、JRE、JVM的區(qū)別與聯(lián)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MyBatis學(xué)習(xí)教程(六)-調(diào)用存儲過程

    MyBatis學(xué)習(xí)教程(六)-調(diào)用存儲過程

    這篇文章主要介紹了MyBatis學(xué)習(xí)教程(六)-調(diào)用存儲過程的相關(guān)資料,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-05-05
  • springboot定時任務(wù)詳解

    springboot定時任務(wù)詳解

    這篇文章主要介紹了springboot定時任務(wù)的相關(guān)資料,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-01-01
  • Java多線程Condition接口原理介紹

    Java多線程Condition接口原理介紹

    這篇文章主要介紹了Java多線程Condition接口原理介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 基于Java編寫一個通用返回工具類Result

    基于Java編寫一個通用返回工具類Result

    Java項目搭建時,常常需要去封裝一個通用型的Result工具類,下面小編就和大家分享一個已經(jīng)封裝好的常用的返回類,希望對大家有所幫助
    2023-07-07
  • Java基于Scanner對象的簡單輸入計算功能示例

    Java基于Scanner對象的簡單輸入計算功能示例

    這篇文章主要介紹了Java基于Scanner對象的簡單輸入計算功能,結(jié)合實例形式分析了Java使用Scanner對象獲取用戶輸入半徑值計算圓形面積功能,需要的朋友可以參考下
    2018-01-01
  • Java超詳細透徹講解接口

    Java超詳細透徹講解接口

    接口是Java中最重要的概念之一,它可以被理解為一種特殊的類,不同的是接口的成員沒有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java接口,感興趣的朋友一起看看吧
    2022-05-05
  • Spring MVC參數(shù)校驗詳解(關(guān)于`@RequestBody`返回`400`)

    Spring MVC參數(shù)校驗詳解(關(guān)于`@RequestBody`返回`400`)

    這篇文章主要介紹了Spring MVC參數(shù)校驗的相關(guān)資料,主要是針對`@RequestBody`返回`400`的問題,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Springboot集成任務(wù)調(diào)度實現(xiàn)過程

    Springboot集成任務(wù)調(diào)度實現(xiàn)過程

    這篇文章主要介紹了Springboot集成任務(wù)調(diào)度實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論