當前位置:首頁 » 編程語言 » java命令參數

java命令參數

發布時間: 2023-02-07 14:48:04

⑴ JDK命令介紹

命令jps用於列出java進程,直接運行jps不加任何參數,可以列出Java程序的進程ID以及Main函數等名稱。
參數-q指定jps只輸出進程ID,而不輸出類的短名稱
參數-m用於輸出傳遞給Java進程(主函數)的參數
參數 -l用於輸出主函數的完整路徑
參數 -v可以顯示傳遞給JVM的參數

jstat是一個可以用於觀察Java應用程序運行時信息的工具。它的功能非常強大,可以通過它,查看堆信息的詳細使用情況。主要用於監控虛擬機的各種運行狀態信息,如類的裝載、內存、垃圾回收、JIT編譯器等,在沒有GUI的伺服器上,這款工具是首選的一款監控工具。
基本使用語法為:

選項option可以由以下值構成:

-class:顯示ClassLoader的相關信息。
-compiler:顯示JIT編譯的相關信息。
-gc:顯示與GC相關的堆信息。
-gccapacity:顯示各個代的容量及使用情況。
-gccause:顯示垃圾收集相關信息(同-gcutil),同時顯示最後一次或當前正在發生的垃圾收集的誘發原因。
-gcnew:顯示新生代信息。
-gcnewcapacity:顯示新生代大小與使用情況。
-gcold:顯示老年代與永久代的信息。
-gcoldcapacity:顯示老年代的大小。
-gcmetacapacity:顯示元空間的大小。(在java8之前是使用-gcpermcapacity顯示永久代的大小)
-gcutil:顯示垃圾收集信息。
-printcompilation:輸出JIT編譯的方法信息。
以上選項可以輸入 jstat -options 查看。

-t 參數可以在輸出信息前加一個 Timestamp 列,顯示程序的運行時間。

-h 參數可以在周期性數據輸出時,輸出多少行數據後,跟著輸出一個表頭信息。

vmid 參數就是Java進程id。

interval 參數用於指定輸出統計數據的周期,單位為毫秒。

count 用於指定一共輸出多少次數據。

jinfo 可以用來查看正在運行的Java運行程序的擴展參數,甚至支持在運行時修改部分參數。可以用來查看正在運行的 java 應用程序的擴展參數,包括Java System屬性和JVM命令行參數;也可以動態的修改正在運行的 JVM 一些參數。當系統崩潰時,jinfo可以從core文件裡面知道崩潰的Java應用程序的配置信息。

jmap 可以生成Java應用程序的堆快照和對象的統計信息。基本語法為:

option 選項如下:
-mp 生成java堆轉儲快照。格式為: -mp:[live,]format=b,file=,其中live子參數說明是否只mp出存活的對象
-finalizerinfo 顯示在F-Queue中等待Finalizer線程執行finalize方法的對象。只在linux/Solaris平台下有效
-heap 顯示java堆詳細信息,如使用哪種收集器、參數配置、分代情況等,在Linux/Solaris平台下有效
-histo 顯示堆中對象統計信息,包含類、實例對象、合集容量
-permstat 以ClassLoader為統計口徑顯示永久代內存狀態。只在Linux/Solaris平台下有效
-F 當虛擬機進程對-mp選項沒有相應時。可使用這個選項強制生成mp快照。只在Linux/Solaris平台下有效

使用 jhat 工具可以用於分析Java應用程序的堆快照內容。jhat 在分析完成後,使用HTTP伺服器展示其分析結果。在瀏覽器中訪問 http://localhost:7000/

jstack 可用於導出Java應用程序的線程堆棧。語法為:

-l選項用於列印鎖的附加信息。
jstack 工具會在控制台輸出程序中所有的鎖信息,可以使用重定向將輸出保存到文件。
通過 jstack 工具不僅可以得到線程堆棧,它還能自動進行死鎖檢查,輸出找到的死鎖信息。

之前所述的工具中,只涉及到監控本機的Java應用程序。而在這些工具中,一些監控工具也支持對遠程計算機的監控(如:jps、jstat)。為了啟用遠程監控,則需要配合使用jstatd工具。
命令jstatd是一個RMI服務端程序,它的作用相當於代理伺服器,建立本地計算機與遠程監控工具的通信。jstatd伺服器將本機的Java應用程序信息傳遞到遠程計算機。

JConsole(Java Monitoring and ManagementConsole)工具時JDK自帶的圖形化性能監控工具。通過JConsole工具,可以查看Java應用程序的運行概況,監控堆信息、永久區使用情況、類載入情況等。

⑵ 如何用命令行運行java程序及輸入main函數參數的輸入

main函數也可以帶參數。帶參數main函數的定義格式如下:
void main(int argc, char *argv[])
{
... ...
}
argc和argv是main函數的形式參數。這兩個形式參數的類型是系統規定的。如果main函數要帶參數,就是這兩個類型的參數;否則main函數就沒有參數。變數名稱argc和argv是常規的名稱,當然也可以換成其他名稱。
那麼,實際參數是如何傳遞給main函數的argc和argv的呢?我們知道,C程序在編譯和鏈接後,都生成一個exe文件,執行該exe文件時,可以直接執行;也可以在命令行下帶參數執行,命令行執行的形式為:
可執行文件名稱 參數1 參數2 ... ... 參數n

執行文件名稱和參數、參數之間均使用空格隔開。例如,在linux下運行程序./a.out 1 2 ,可執行文件名稱為./a.out,參數1為字元串1,參數2為2。
如果按照這種方法執行,命令行字元串將作為實際參數傳遞給main函數。具體為:
(1) 可執行文件名稱和所有參數的個數之和傳遞給argc;所以上面的argc=3
(2) 可執行文件名稱(包括路徑名稱)作為一個字元串,首地址被賦給argv[0],參數1也作為一個字元串,首地址被賦給argv[1],... ...依次類推。

⑶ 怎樣用數組使用java命令行參數

哥們你看看下面解釋還行嗎?

java命令行的常用參數
2008-09-05 18:38
java -classpath/-cp
虛擬機在運行一個類時,需要將其裝入內存,虛擬機搜索類的方式和順序如下:
Bootstrap classes,Extension classes,User classes。
Bootstrap中的路徑是虛擬機自帶的jar或zip文件,虛擬機首先搜索這些包文件,用System.getProperty("sun.boot.class.path")可得到虛擬機搜索的包名。
Extension是位於jre\lib\ext目錄下的jar文件,虛擬機在搜索完Bootstrap後就搜索該目錄下的jar文件。用System. getProperty("java.ext.dirs」)可得到虛擬機使用Extension搜索路徑。
User classes搜索順序為當前目錄、環境變數 CLASSPATH、-classpath。
-classpath告知虛擬機搜索目錄名、jar文檔名、zip文檔名之間用分號;分隔。
例如當你自己開發了公共類並包裝成一個common.jar包,在使用common.jar中的類時,就需要用-classpath common.jar 告訴虛擬機從common.jar中查找該類,否則虛擬機就會拋出java.lang.NoClassDefFoundError異常,表明未找到類定義。在運行時可用System.getProperty(「java.class.path」)得到虛擬機查找類的路徑。
使用-classpath後虛擬機將不再使用CLASSPATH中的類搜索路徑,如果-classpath和CLASSPATH都沒有設置,則虛擬機使用當前路徑(java.exe所在路徑)作為類搜索路徑。
推薦使用-classpath來定義虛擬機要搜索的類路徑,而不要使用環境變數CLASSPATH的搜索路徑,以減少多個項目同時使用CLASSPATH時存在的在沖突。例如應用1要使用a1.0.jar中的類G,應用2要使用a2.0.jar中的類G,a2.0.jar是a1.0.jar的升級包,當a1.0.jar,a2.0.jar都在CLASSPATH中,虛擬機搜索到第一個包中的類G時就停止搜索,如果應用1應用2的虛擬機都從CLASSPATH中搜索,就會有一個應用得不到正確版本的類G。

java -version
顯示虛擬機版本信息。

java -verbose/-verbosse:class
verbose和verbose:class含義相同,輸出虛擬機裝入的類的信息,顯示的信息格式如下:
[Loaded java.io.FilePermission$1 from shared objects file]
當虛擬機報告類找不到或類沖突時可用此參數來診斷來查看虛擬機從裝入類的情況。

⑷ java命令行參數

這個跟普通的運行沒區別.java Message是指運行Message.class.後面的3個-g cruel world是當做參數傳入主方法的String類型數組的.
因此這就是運行Message並且傳入3個參數進去而已.

⑸ java命令行參數是什麼意思

這個名詞我們可以分開來看:

「命令行"就是:DOC命令行"了,也就是那個黑色的框框。
"參數就"是程序裡面所需要的"參數"了。
合起來"命令行參數」就是「在DOC下輸入的程序所需的參數」。

⑹ java-jar命令設置啟動參數

java-jar命令設置啟動參數三種方法。
1、DpropName等於propValue的形式攜帶,要放在jar參數前面。
2、參數直接跟在命令後面。
3、springboot的方式,key等於value方式。

⑺ java 中 如何通過命令行來傳遞參數

可以在命令行運行java程序時加上程序的參數。

例子如下:

public class HelloWorld{


public static void main(String args[]){


System.out.println("temp=" + args[0]);


}


}

源代碼截圖:

解釋一下: String[ ] args

該參數,是一個字元串數組,用來接收從命令行輸入的參數

1. 參數之間用空格隔開

2. java解釋器會自動處理,把用空格隔開的每一個參數通過args數組傳遞給買呢()方法。

3. 參數的下標從0開始,args[0]表示第一個參數,例如java HelloWorld 10 20 30

4.可以有多個空格,多個空格會被忽略。

(7)java命令參數擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。

⑻ java main方法中的命令行參數

作用:
當你使用命令行的形式運行.class文件時,向你的類傳遞參數.

C:\>java YourClassName 參數1 [參數2 參數3 ....]

參數之間用一個空格作為間隔符.

String[] args 這個字元串數組是保存運行main函數時輸入的參數的,例如main函數所在的類名為test 那麼你在cmd運行 java test a b c 時,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中調用你輸入的這些變數了。

args[]不就是那個字元串This is a simple Java program嗎?
-------完全不是的,你理解不對。這樣好了,你在運行的時候加個參數,比如 java test XX。然後在你的main函數裡面加這段話:System.out.println("arg is"+args[0]),然後看看輸出是什麼?
是不是這個:
This is a simple Java program
arg is XX

在運行時輸入java test xx yy zz,並且在你的main函數裡面加這段話:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然後看看輸出是什麼?
是不是:
This is a simple Java program
arg is xx yy zz

現在你理解了嗎。。。

如果沒關系,為什麼程序中去掉String args[]會出現錯誤?
--------之所以去掉會出錯在於,不帶String args[]的main函數和帶String args[]的main函數,本質上已經不是同一個函數了,java 本身不存在不帶String args[]的main函數,所以當然出錯了。

⑼ Java 的命令行 編譯和運行參數 如:-cp 怎麼理解

javac

用法:javac <選項> <源文件>
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath <路徑> 指定查找用戶類文件的位置
-cp <路徑> 指定查找用戶類文件的位置
-sourcepath <路徑> 指定查找輸入源文件的位置
-bootclasspath <路徑> 覆蓋引導類文件的位置
-extdirs <目錄> 覆蓋安裝的擴展目錄的位置
-endorseddirs <目錄> 覆蓋簽名的標准路徑的位置
-d <目錄> 指定存放生成的類文件的位置
使用-d參數,如類中定義了包,則編譯時會自動生成包, 如:javac -d . helloworld.java
表示在當前目錄下編譯Helloworld 類。.表示當前目錄,如helloword中定義有包,則在當前目錄下生成包:

-encoding <編碼> 指定源文件使用的字元編碼
-source <版本> 提供與指定版本的源兼容性
-target <版本> 生成特定 VM 版本的類文件
-version 版本信息
-help 輸出標准選項的提要
-X 輸出非標准選項的提要
-J<標志> 直接將 <標志> 傳遞給運行時系統

java

用法: java [-選項] 類 [參數...]
(執行一個類)
或者 java [-選項] -jar jar文件 [參數...]
(執行一個jar文件)
其中,可能的選項包括:
-client 選擇 "client" VM(ginger547:應該是指Virtual Machine)
-server 選擇 "server" VM
-hotspot 與 "client" VM同義 [不贊成]
默認情況的VM是client.
-cp <一個文件夾和zip/jar文件組成的類搜索路徑>
-classpath <一個文件夾和zip/jar文件組成的類搜索路徑>
一個由文件夾,JAR壓縮文件,或者ZIP壓縮文件組成的用來搜索類的列表
-D<名字>=<值>
設置一個系統屬性
-verbose[:class|gc|jni]
使詳細輸出變的可用
-version 列印產品版本然後退出
-version:<值>
只運行指定版本
-showversion 列印產品版本後繼續
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的時候,包含/排除用戶私人的JRE
-? -help 列印幫助信息
-X 列印非標准選項幫助
-ea[:<包名>...|:<類名>]
-enableassertions[:<包名>...|:<類名>]
使斷言可用
-da[:<包名>...|:<類名>]
-disableassertions[:<包名>...|:<類名>]
是斷言不可用
-esa | -enablesystemassertions
使系統級斷言可用
-dsa | -disablesystemassertions
使系統級斷言不可用
-agentlib:<庫名>[=<選項>]
載入本地代理庫<庫名>,例如. -agentlib:hprof
同時可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路徑名>[=<選項>]
通過全路徑名來載入本地代理庫
-javaagent:<jar路徑>[=<選項>]
載入Java編程語言代理,可查看 java.lang.instrument

⑽ java main函數怎麼設置參數

elipse配置方式為:
Run As-->Run Configurations->Arguments->Program arguments 中輸入 參數值即可,空格隔開。
其它開發工具也類似

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:577
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:871
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:566
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:749
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:668
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:994
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:239
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:98
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:790
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:696