導航:首頁 > 文件管理 > java配置文件參數

java配置文件參數

發布時間:2024-04-29 12:34:55

1. java為什麼要設置環境變數,JAVA

一、原因是:
配置java環境變數是為了能在運行-cmd-中用java命令來編譯和運行java代碼。在我們的window系統中,安裝的軟體都有路徑的。如果我們不配置環境變數的話,我們就只能在jdk的安裝路徑下才能運行。換到了其它的路徑就不行了,系統就會提示找不到路徑,為了能在任務路徑下都可以運行jdk,我們就要配置環境變數。
二、如何設置環境變數
首先,先安裝了java的JDK,接下來配置環境變數的步驟如下:
1、點擊「計算機」的「屬性」選項,選擇「高級系統設置」;
2、點擊「高級系統設置」後,在彈出的對話框中點擊「環境變數」;
3、點擊系統變數下面的新建按鈕,在彈出的對話框中輸入變數名為「Java_Home」,變數值為jdk的安裝位置(如C:\Program Files\Java\jdk1.7.0_07),之後點擊確定;
4、選中系統變數中的「Path」變數,點擊編輯按鈕;
5、在彈出的編輯框中的「變數值」一欄的最前面添加「%Java_Home%\bin;%Java_Home%\jre\bin;」,之後點擊確定按鈕;
6、之後再點擊系統變數下面的新建按鈕,在彈出的對話框中輸入變數名為「ClassPath」,變數值為「.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar」;
7、這樣環境變數的配置就已經完成了。

2. java no XXX in java.library.path鎬庝箞閰嶇疆

java no XXX in java.library.path閰嶇疆鏈変互涓7姝ワ細

1銆丣ava鏈変袱涓狿ath錛屼竴涓鏄痗lasspath錛屽彟澶栦竴涓猯ibrary.path銆俢lasspath鏄璁劇疆JDK鐨刲ib浣嶇疆銆傝宭ibrary.path鏄璁劇疆寮曠敤鐨勯潪Java綾誨寘錛堝侱LL錛孲O錛夌殑浣嶇疆銆傚叿浣揈clipse璁劇疆鏂規硶瑙佷笅闈㈣劇疆銆

2銆佸彸鍑婚」鐩錛屼粠寮瑰嚭鐨勫彸閿鑿滃崟涓閫夋嫨鈥淧roperties鈥濓紝鎴栬呮寜Alt+Enter閿銆

7銆佸湪涓婇潰鐨刅M鍙傛暟涓鍐欏叆-Djava.library.path=c://**//***.dll錛岀瓑鍙蜂細鍚庢槸鍏蜂綋鐨凞LL璺寰勩

3. Java里如何添加自定義的配置文件jsP里去讀取參數

java里可以再在resources裡面新建一個XML file或者 file文件
XML file 會自動生成XML頭,在下面加入內容就可以了,首先要有一個根節點,然後如果需要用到一些類,如:spring的一些類,就需要引入包,如:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com.dist.*.controller" />
</beans >

其中<?xml ……就是頭,<beans 是根節點,下面的<content:……是內容。
如果添加的事properties文件,格式如下:

# 連接池配置
pool.size = 2
pool.max = 50

然後jsp調用讀取xml文件的方法去讀取自重的內容就可以了。

4. 什麼是JavaConfig

Java config是指基於java配置的spring。

Spring JavaConfig是Spring社區的產品,這一產品提供了配置Spring IOC容器的純Java方法,有助於避免使用XML配置。

config在計算機的命令中是「配置」的意思,而在計算機中各類軟體及系統都有類似CONFIG的文件,其中主要是系統或各軟體的配置參數,

如config.sys中記錄了電腦系統啟動時載入的配置參數。

JavaCofig的優點:

1、面向對象的配置:

由於配置被定義為JavaConfig中的類,因此用戶可以充分使用Java中的面向對象功能。一個配置類可以繼承另一個,重寫它的@Bean方法等。

2、減少或者消除XML配置:

javaconfig為開發人員提供了一種純Java的方法來配置與XML配置概念相似的Spring容器。

從技術角度來說,只使用javaconfig配置類來配置容器是可行的,但是實際開發中,很多場景都是javaconfig和xml配置共用是最方便,理想的。

3、類型安全和重構好:

javaconfig提供了一種類型安全的方法了來配置spring容器,由於Java5.0對泛型的支持,現在可以按類型而不是名稱檢索bean,不需要任何的強制轉換或者基於字元串的查找。

5. 怎麼動態給java註解參數賦值

動態賦值指的是在配置文件配置好然後在項目中動態讀取?如果是這樣的話:
1.在xml文件中使用<context:property-placeholder location="」/>
這種方式可以讀取location指定位置對應的文件,引用的話使用${key}可以獲取對應的數據
和這種寫法相同的還有
<bean class=「com.spring….config.PropertyPlaceholderConfigurer」>
<property name=「locations">
<array><value></value></array>
</property>
<bean>
這種是用bean來載入配置文件,看起來更直觀
2.通過@Value註解讀取配置
這種方法也需要預先在xml文件中設定好配置文件的位置
<bean id=「prop」 class=「org.springframework.beans.factory.config.PropertiesFactoryBean」>
<property name=「locations」>
<array>
<value>classpath:.properties</value>
</array>
</property>
</bean>
之後在java代碼裡面可以用#{prop.key}來獲取對應的數據prop是bean的名字,key是配置文件的鍵。
3.使用@PropertySource
在springboot中,可以不需要xml文件來設置配置文件,在需要使用配置文件的類名字前加上
@PropertySource(「locations")就可以讀取指定位置的配置,在代碼中使用@Value註解可以獲取這些數據
@Value(value = 「${key}」)
4.使用@ConfigurationProperties(prefix=「」)
SpringBoot項目有時候會使用application.yml來存儲配置信息,一般情況下這些數據的存儲格式是
a:
key1:value1
key2:value2
這種嵌套方式,當然可以多層嵌套
在需要使用配置文件的類上面使用@ConfigurationProperties(prefix=「a」)可以獲取a標簽下一層所有的配置的鍵值對。

6. 如何設置myeclipse的jvm啟動參數

-Xint

設置jvm以解釋模式運行,所有的位元組碼將被直接執行,而不會編譯成本地碼。

-Xbatch

關閉後台代碼編譯,強制在前台編譯,編譯完成之後才能進行代碼執行;

默認情況下,jvm在後台進行編譯,若沒有編譯完成,則前台運行代碼時以解釋模式運行。

-Xbootclasspath:bootclasspath

讓jvm從指定路徑(可以是分號分隔的目錄、jar、或者zip)中載入bootclass,用來替換jdk的rt.jar;若非必要,一般不會用到;

-Xbootclasspath/a:path

將指定路徑的所有文件追加到默認bootstrap路徑中;

-Xbootclasspath/p:path

讓jvm優先於bootstrap默認路徑載入指定路徑的所有文件;

-Xcheck:jni

對JNI函數進行附加check;此時jvm將校驗傳遞給JNI函數參數的合法性,在本地代碼中遇到非法數據時,jmv將報一個致命錯誤而終止;使用該參數後將造成性能下降,請慎用。

-Xfuture

讓jvm對類文件執行嚴格的格式檢查(默認jvm不進行嚴格格式檢查),以符合類文件格式規范,推薦開發人員使用該參數。

-Xnoclassgc

關閉針對class的gc功能;因為其阻止內存回收,所以可能會導致OutOfMemoryError錯誤,慎用;

-Xincgc

開啟增量gc(默認為關閉);這有助於減少長時間GC時應用程序出現的停頓;但由於可能和應用程序並發執行,所以會降低CPU對應用的處理能力。

-Xloggc:file

與-verbose:gc功能類似,只是將每次GC事件的相關情況記錄到一個文件中,文件的位置最好在本地,以避免網路的潛在問題。

若與verbose命令同時出現在命令行中,則以-Xloggc為准。

-Xmsn

指定jvm堆的初始大小,默認為物理內存的1/64,最小為1M;可以指定單位,比如k、m,若不指定,則默認為位元組。

-Xmxn

指定jvm堆的最大值,默認為物理內存的1/4或者1G,最小為2M;單位與-Xms一致。

-Xprof

跟蹤正運行的程序,並將跟蹤數據在標准輸出輸出;適合於開發環境調試。

-Xrs

減少jvm對操作系統信號(signals)的使用,該參數從1.3.1開始有效;

從jdk1.3.0開始,jvm允許程序在關閉之前還可以執行一些代碼(比如關閉資料庫的連接池),即使jvm被突然終止;

jvm 關閉工具通過監控控制台的相關事件而滿足以上的功能;更確切的說,通知在關閉工具執行之前,先注冊控制台的控制handler,然後對 CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and
CTRL_SHUTDOWN_EVENT這幾類事件直接返回true。

但如果jvm以服務的形式在後台運行(比如servlet引擎),他能接 收CTRL_LOGOFF_EVENT事件,但此時並不需要初始化關閉程序;為了避免類似沖突的再次出現,從jdk1.3.1開始提供-Xrs參數;當此 參數被設置之後,jvm將不接收控制台的控制handler,也就是說他不監控和處理CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or
CTRL_SHUTDOWN_EVENT事件。

-Xssn

設置單個線程棧的大小,一般默認為512k。

上面這些參數中,比如-Xmsn、-Xmxn……都是我們性能優化中很重要的參數;

-Xprof、-Xloggc:file等都是在沒有專業跟蹤工具情況下排錯的好手;

在上一小節中提到的關於JProfiler的配置中就使用到了-Xbootclasspath/a:path;

非Stable參數

前面我們提到用-XX作為前綴的參數列表在jvm中可能是不健壯的,SUN也不推薦使用,後續可能會在沒有通知的情況下就直接取消了;但是由於這些參數中的確有很多是對我們很有用的,比如我們經常會見到的-XX:PermSize、-XX:MaxPermSize等等;

下面我們將就Java HotSpot VM中-XX:的可配置參數列表進行描述;

這些參數可以被鬆散的聚合成三類:

行為參數(Behavioral Options):用於改變jvm的一些基礎行為;

性能調優(Performance Tuning):用於jvm的性能調優;

調試參數(Debugging
Options):一般用於打開跟蹤、列印、輸出等jvm參數,用於顯示jvm更加詳細的信息;

由於sun官方文檔中對各參數的描述也都非常少(大多隻有一句話),而且大多涉及OS層面的東西,很難描述清楚,所以以下是挑選了一些我們開發中可能會用得比較多的配置項,若需要查看所有參數列表,可以點擊HotSpot VM Specific
Options.查看原文;

首先來介紹行為參數:

參數及其默認值

描述

-XX:-DisableExplicitGC

禁止調用System.gc();但jvm的gc仍然有效

-XX:+MaxFDLimit

最大化文件描述符的數量限制

-XX:+ScavengeBeforeFullGC

新生代GC優先於Full GC執行

-XX:+UseGCOverheadLimit

在拋出OOM之前限制jvm耗費在GC上的時間比例

-XX:-UseConcMarkSweepGC

對老生代採用並發標記交換演算法進行GC

-XX:-UseParallelGC

啟用並行GC

-XX:-UseParallelOldGC

對Full GC啟用並行,當-XX:-UseParallelGC啟用時該項自動啟用

-XX:-UseSerialGC

啟用串列GC

-XX:+UseThreadPriorities

啟用本地線程優先順序

上面表格中黑體的三個參數代表著jvm中GC執行的三種方式,即串列、並行、並發;

串列(SerialGC)是jvm的默認GC方式,一般適用於小型應用和單處理器,演算法比較簡單,GC效率也較高,但可能會給應用帶來停頓;

並行(ParallelGC)是指GC運行時,對應用程序運行沒有影響,GC和app兩者的線程在並發執行,這樣可以最大限度不影響app的運行;

並發(ConcMarkSweepGC)是指多個線程並發執行GC,一般適用於多處理器系統中,可以提高GC的效率,但演算法復雜,系統消耗較大;

性能調優參數列表:

參數及其默認值

描述

-XX:LargePageSizeInBytes=4m

設置用於Java堆的大頁面尺寸

-XX:MaxHeapFreeRatio=70

GC後java堆中空閑量占的最大比例

-XX:MaxNewSize=size

新生成對象能佔用內存的最大值

-XX:MaxPermSize=64m

老生代對象能佔用內存的最大值

-XX:MinHeapFreeRatio=40

GC後java堆中空閑量占的最小比例

-XX:NewRatio=2

新生代內存容量與老生代內存容量的比例

-XX:NewSize=2.125m

新生代對象生成時佔用內存的默認值

-XX:ReservedCodeCacheSize=32m

保留代碼佔用的內存容量

-XX:ThreadStackSize=512

設置線程棧大小,若為0則使用系統默認值

-XX:+UseLargePages

使用大頁面內存

我們在日常性能調優中基本上都會用到以上黑體的這幾個屬性;

調試參數列表:

參數及其默認值

描述

-XX:-CITime
列印消耗在JIT編譯的時間

-XX:ErrorFile=./hs_err_pid.log

保存錯誤日誌或者數據到文件中

-XX:-ExtendedDTraceProbes

開啟solaris特有的dtrace探針

-XX:HeapDumpPath=./java_pid.hprof

指定導出堆信息時的路徑或文件名

-XX:-HeapDumpOnOutOfMemoryError

當首次遭遇OOM時導出此時堆中相關信息

-XX:
出現致命ERROR之後運行自定義命令

-XX:OnOutOfMemoryError=";"

當首次遭遇OOM時執行自定義命令

-XX:-PrintClassHistogram

遇到Ctrl-Break後列印類實例的柱狀信息,與jmap -histo功能相同

-XX:-PrintConcurrentLocks

遇到Ctrl-Break後列印並發鎖的相關信息,與jstack -l功能相同

-XX:-PrintCommandLineFlags

列印在命令行中出現過的標記

-XX:-PrintCompilation

當一個方法被編譯時列印相關信息

-XX:-PrintGC
每次GC時列印相關信息

-XX:-PrintGC Details

每次GC時列印詳細信息

-XX:-PrintGCTimeStamps

列印每次GC的時間戳

-XX:-TraceClassLoading

跟蹤類的載入信息

-XX:-TraceClassLoadingPreorder

跟蹤被引用到的所有類的載入信息

-XX:-TraceClassResolution

跟蹤常量池

-XX:-TraceClassUnloading

跟蹤類的卸載信息

-XX:-TraceLoaderConstraints

跟蹤類載入器約束的相關信息

7. 如何修改jvm啟動參數

用java命令查看。
用java -option進行修改參數。
還有tomcat,eclipse啟動時通過配置文件載入的。
詳細如下:
安裝Java開發軟體時,默認安裝包含兩個文件夾,一個JDK(Java開發工具箱),一個JRE(Java運行環境,內含JVM),其中JDK內另含一個JRE。如果只是運行Java程序,則JRE已足夠;而JDK則只有開發人員才用到。
一、配置JVM內存
1.配置JVM內存的參數
-XmxJavaHeap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;
-XmsJavaHeap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
2.如何配置JVM內存分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類生效)
java-Xmx128m-Xms64m-Xmn32m-Xss16mTest
(2)當在集成開發環境下(如eclipse)啟動並使用JVM時:
第一種設置方法:
在eclipse根目錄下打開eclipse.ini,默認內容為(這里設置的是運行當前開發工具的JVM內存分配):
-vmargs-Xms40m-Xmx256m-vmargs表示以下為虛擬機設置參數,可修改其中的參數值,,另外,eclipse.ini內還可以設置非堆內存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此處設置的參數值可以通過以下配置在開發工具的狀態欄顯示:
在eclipse根目錄下創建文件options,文件內容為:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目錄下的eclipse.ini文件,在開頭處添加如下內容:
-debugoptions-vmjavaw.exe重新啟動eclipse,就可以看到下方狀態條多了JVM信息。
第二種設置方法:
打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效)
編輯當前使用的JRE,在預設VM參數中輸入:-Xmx128m-Xms64m-Xmn32m-Xss16m
第三種設置方法:
打開eclipse-運行-運行-Java應用程序(只對所設置的java類生效)
選定需設置內存分配的類-自變數,在VM自變數中輸入:-Xmx128m-Xms64m-Xmn32m-Xss16m
註:如果在同一開發環境中同時進行了第二種和第三種設置,則第二種設置生效,第三種設置無效,如:
開發環境的設置為:-Xmx256m,而類Test的設置為:-Xmx128m-Xms64m,則運行Test時生效的設置為:
-Xmx256m-Xms64m
(3)當在伺服器環境下(如Tomcat)啟動並使用JVM時(對當前伺服器環境下所以Java程序生效):
a.設置環境變數:
變數名:CATALINA_OPTS
變數值:-Xmx128m-Xms64m-Xmn32m-Xss16m
b.打開Tomcat根目錄下的bin文件夾,編輯catalina.bat,將其中的%CATALINA_OPTS%(共有四處)替換為:-Xmx128m-Xms64m-Xmn32m-Xss16m
二、查看配置JVM內存信息
Runtime.getRuntime().maxMemory();//最大可用內存,對應-Xmx
Runtime.getRuntime().freeMemory();//當前JVM空閑內存
Runtime.getRuntime().totalMemory();//當前JVM佔用的內存總數,其值相當於當前JVM已使用的內存及freeMemory()的總和
關於maxMemory(),freeMemory()和totalMemory():
maxMemory()為JVM的最大可用內存,可通過-Xmx設置,默認值為物理內存的1/4,設值不能高於計算機物理內存;
totalMemory()為當前JVM佔用的內存總數,其值相當於當前JVM已使用的內存及freeMemory()的總和,會隨著JVM使用內存的增加而增加;
freeMemory()為當前JVM空閑內存,因為JVM只有在需要內存時才佔用物理內存使用,所以freeMemory()的值一般情況下都很小,而JVM實際可用內存並不等於freeMemory(),而應該等於maxMemory()-totalMemory()+freeMemory()。及其配置JVM內存分配。

閱讀全文

與java配置文件參數相關的資料

熱點內容
微雲保存文件圖片沒有了 瀏覽:236
如何把excel表格圖片導出到文件夾 瀏覽:387
qq三國快速升級攻略 瀏覽:660
js監聽手機home事件 瀏覽:439
第2章linux的桌面管理副本 瀏覽:452
qq郵箱手機上登錄微信賬號密碼錯誤 瀏覽:627
編程如何讓人物重復發射子彈 瀏覽:853
db2查看錶空間文件 瀏覽:607
ps文件界面設置 瀏覽:779
c語言12位的數據應該怎麼存儲 瀏覽:953
將ape導入iphone 瀏覽:107
js組合快捷鍵 瀏覽:174
linux系統盤默認掛在的文件夾 瀏覽:667
淘寶數據包如何操作上架 瀏覽:567
vb編程中輸入cls是什麼意思 瀏覽:81
linuxtime服務 瀏覽:184
瘋狂安卓講義第二版代碼 瀏覽:420
老炮兒三小時版本下載 瀏覽:313
matlab怎麼調試程序 瀏覽:2
winxp升級win7的危害 瀏覽:496

友情鏈接