1. 程式人生 > >Java 設定系統引數和執行引數

Java 設定系統引數和執行引數

1. 名詞解釋

1.1 系統引數

系統級全域性變數,該引數在程式中任何位置都可以訪問到。優先順序最高,覆蓋程式中同名配置。

系統引數的標準格式為:-Dargname=argvalue,多個引數之間用空格隔開,如果引數值中間有空格,則用引號括起來。

其中,引數名可以是 Java 預設的,此類引數由 JVM 虛擬機器自動識別並生效,例如,-Dfile.encoding=UTF-8 用於指定檔案編碼格式;也可以是使用者自定義的,例如,-Dmy=user,程式中可以讀取該引數值,執行相關邏輯。

虛擬機器系統引數中設定的引數鍵值對,在程式中可以用 System.getProperty("propertyName")

獲取對應引數值。

-X/-XX 為非標準系統引數形式,一般與 JVM 虛擬機器設定有關,引數名和值都由 JVM 規範規定。例如:-Xms :初始堆大小-Xmx :最大堆大小

程式碼清單:

/**
 * VM Args:-Dmy=user
 * 
 * @author moonspirit
 * @version 1.0
 */
public class VMargs {

    public static void main(String[] args) {
        String result = System.getProperty("my");
        System.out.println("my: "
+ result); } }

輸出結果:

輸出結果

1.2 執行引數

main 方法執行時傳入的引數值,如果引數有多個,用空格分開。

main 方法的一般格式為:public static void main(String[] args),其中,Stringp[] args 就是儲存執行引數的變數,在程式中可以直接使用。

程式碼清單:

/**
 * Program Args:hi a b c d
 * 
 * @author moonspirit
 * @version 1.0
 */
public class PROargs {

    public static void
main(String[] args) { if (args.length > 0) { for (int i = 0; i < args.length; i++) { System.out.println("第" + i + "個引數為:" + args[i]); } } } }

輸出結果:

輸出結果

2. 命令列中的引數設定

java 命令的基本格式為 java [-options] class [args...],其中:

  • [-options] 配置 Java 系統引數

  • [args…] 配置 Java 執行引數

示例:java -Dfile.encoding=UTF-8 -Dmy=user Test hi a b c d

3. Eclipse 中的引數設定

在視窗左側 Project Explorer 中找到要執行的類,右鍵 -> Run As –> Run Configurations,在對話方塊中選擇 Arguments 選項卡,鍵入相應引數。

這裡寫圖片描述

相關推薦

Java 設定系統引數執行引數

1. 名詞解釋 1.1 系統引數 系統級全域性變數,該引數在程式中任何位置都可以訪問到。優先順序最高,覆蓋程式中同名配置。 系統引數的標準格式為:-Dargname=argvalue,多個引數之間用空格隔開,如果引數值中間有空格,則用引號括起來。 其

Eclipse中輸入系統變數執行引數

在開發時,有時候可能需要根據不同的環境設定不同的系統引數,我們都知道,在使用java -jar命令時可以使用-D引數來設定執行時的系統變數,同樣,在Eclipse中執行java程式時,我們怎麼設定該系統變數呢?另外,如果我們的程式需要輸入執行引數,在Eclipse中如何配置?

java啟動exe程式,傳遞引數獲取引數

1、java中啟動exe程式 ,並新增傳參 String[] cmd = {"hh.exe","12315"}; Process process = null; try { ProcessBuilder pb =

java 增強for迴圈 可變引數

JDK5中定義了一種新的語法----增強for迴圈,以簡化遍歷操作。增強for迴圈只能用在陣列或實現Iterable介面的集合上. for(元素的資料型別 變數 : 陣列或者集合) { 對變數進行操作 //該變數就是集合或者陣列中的

Java中的SafeVarargs變數引數

有些語言在編譯時強制執行型別,但忘記了執行時的型別。這被稱為型別擦除。 例如,在C中,編譯器將確保程式碼完全是型別證明的。因此生成的位元組碼不會擔心執行時的型別資訊。 就像一枚硬幣的兩面,另一面。有些語言在執行時進行型別檢查(也可能在編譯時)。這被稱為具體化reification。 例如

Linux核心配置系統-KconfigMakefile引數講解

下面講解一個綜合例項,假設我們要在核心原始碼drivers目錄下為ARM體系結 構新增如下用於test driver 的樹型目錄: |--test |-- cpu | -- cpu.c |-- test.c |-- test_client.c |-- test_ioctl.c |-- test_proc.c

gcc -l引數-L引數(編譯時標頭檔案路徑庫檔案路徑的設定相關)

放在/lib和/usr/lib和/usr/local/lib裡的庫直接用-l引數就能連結了,但如果庫檔案沒放在這三個目錄裡,而是放在其他目錄裡,這時我們只用-l引數的話,連結還是會出錯,出錯資訊大概是:“/usr/bin/ld: cannot find -lxxx”,也就是連結程式ld在那3個目錄裡找不到l

Linux鞏固記錄(1) java項目的編譯執行

mce frame cati readfile 知識 4.3 sse apach ast 由於要近期使用hadoop等進行相關任務執行,操作linux時候就多了 以前只在linux上配置J2EE項目執行環境,無非配置下jdk,部署tomcat,再通過docker或者jenk

java --代碼編譯執行的整個過程

pan home 面向 share 簡單的 下一條 c++ oot 註解 1. 什麽是 JVM   JVM 是 Java 的核心和基礎,在 Java 編譯器和 os 平臺之間的虛擬處理器。它是一種基於下層的操作系統和硬件平臺並利用軟件方法來實現的抽象的計算機,可以在上面執行

JVM原理(Java代碼編譯執行的整個過程+JVM內存管理及垃圾回收機制)

變化 並行 colspan 同時 簡單的 table 目前 動態 中心 轉載註明出處: http://blog.csdn.net/cutesource/article/details/5904501 JVM工作原理和特點主要是指操作系統裝入JVM是通過jdk中Java.ex

requests.post()方法中的data引數json引數

json和dict python中的dict型別要轉換為json格式的資料需要用到json庫: import json <json> = json.dumps(<dict>) <dict> = json.loads(<json>) 需要

spring AOP的@Around輸出請求引數返回引數

spring 的AOP是通過cglib動態代理和jdk的動態代理實現的。 先把我的列印日誌程式碼貼出來 package com.zhd.exploit.api.config; import java.util.HashMap; import java.util.Map; imp

C#總結---方法的out引數ref引數

我們知道,在c#中,當我們在一個方法中想要訪問另一個方法中的變數的時候,有兩種解決方案---引數和返回值。但當需要返回多個值,並且是不同型別的值的之後應該怎麼辦呢?解決方案可以是 (1)將所有型別資料轉換成字串型別,到最後再都轉換回來,這樣就比較麻煩了 (2)利用方法的out引數和ref引數 下面要跟大

C++中的行內函數,預設引數佔位引數

說明:裡面的示例程式碼有些被註釋掉了,想執行時要去掉註釋 #include "iostream" using namespace std; /**      內聯函數出現的原因:     C++中的const常量可以替代巨

如何一條Mediainfo --Inform語句同時獲取視訊引數音訊引數多個Parameters

mediainfo是一個能獲取多媒體檔案詳細資訊的軟體,包括內容資訊,視訊資訊,音訊資訊,文字資訊等,有了它我們可以檢視視訊的寬高,比例,播放時長,音軌,位元率等等資訊 準備工作 個人部落格地址為:dangbowen.com,歡迎加入收藏夾 參考php-mediainfo教程安裝mediainf

關於C#控制檯傳遞引數接收引數

關於C#控制檯傳遞引數和接收引數 前言:   寫了這麼久程式,今天才知道的一個基礎知識點,就是程式入口 static void Main(string[] args) 裡的args引數是什麼意思 ?慚愧... 需求:   點選一個button,啟動一個exe程式(xxx.exe),並

python中函式中的實參形參以及預設引數收集引數

一.實參和形參 例項:>>> def MyFirstFunction(name):                    ”函式定義過程中的hame是叫形參“ &nb

Angular6學習筆記17:在路由中傳引數接收引數

傳引數 1.在需要傳引數的元件的類檔案(ts檔案)中,構造方法中,宣告物件: constructor(private route: Router) { } 2.在路由中設定引數(有三種方式) routerLink屬性 a.對於單一引數 <a [router

陣列引數指標引數

陣列引數退化的意義 C語言中只會以值拷貝的方式傳遞引數 當向函式傳遞陣列時: - 將陣列名看做常量指標傳陣列首元素地址 - 引數傳遞的時候如果拷貝整個陣列執行效率將大大下降 - 引數位於棧上,太大的陣列拷貝將導致棧溢位 二維陣

python 可變引數關鍵字引數*args **kwargs

在Python函式中,還可以定義可變引數。顧名思義,可變引數就是傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個。 *args可變引數 *args表示把args這個list或者tuple的所有元素作為可變引數傳進去。兩種傳遞方式如下: >&g