Eclipse 運行時選項
最后修改時間為 2004 年 8 月 4 日 14 點 45 分,星期三
Eclipse 平臺具有很高的可配置性。配置輸入的形式為命令行自變量和系統屬性設置。很多情況下,命令行自變量僅僅是用來設置相關系統屬性的縮寫。事實上,系統屬性設置遠多于命令行自變量。
命令行自變量
下面列示的是由 Eclipse 運行時的各個部分處理的命令行自變量。其中很多值也可通過使用系統屬性在命令行上使用 -D VM 自變量來指定或者通過在 config.ini 文件中指定這些值來指定。使用后一技巧,可以根本不使用命令行自變量就定制 Eclipse。
對于列表中的每個自變量,已經給定了其對應系統屬性關鍵字(在 {} 中)。另外還給定了處理命令行自變量的 Eclipse 運行時層(在 () 中)。這對于人們替換運行時部件以適應特殊需要很有用。
- -application <id> (Runtime)
- 相當于將 eclipse.application 設置為 <id>
- -arch <architecture> (OSGi)
- 相當于將 osgi.arch 設置為 <architecture>
- -clean (OSGi) NEW
- 相當于將 osgi.clean 設置為 "true"
- -configuration <location> (Main)
- 相當于將 osgi.configuration.area 設置為 <location>
- -console [port] (OSGi) NEW
- 相當于將 osgi.console 設置為 [port] 或在要使用缺省端口(例如,未指定端口時)時設置為空字符串。
- -consoleLog (Runtime)
- 相當于將 eclispe.consoleLog 設置為 "true"
- -data <location> (OSGi)
- 相當于將 osgi.instance.area 設置為 <location>
- -debug [options file] (OSGi)
- 相當于將 osgi.debug 設置為 [options file] 或設置為空字符串以僅啟用調試(例如,如果未指定選項文件位置)
- -dev [entries] (OSGi)
- 相當于將 osgi.dev 設置為 [entries] 或設置為空字符串以僅啟用 DEV 方式(例如,如果未指定條目)
-
-
- -endSplash <command> (Main)
- 指定要用來關閉閃屏的命令。通常由 Eclipse 可執行文件提供。
- -feature <feature id> (Runtime)
- 相當于將 eclipse.product 設置為 <feature id>
- -framework <location> (Main) NEW
- 相當于將 osgi.framework 設置為 <location>
- -initialize (Main)
- 初始化要運行的配置。刷新與運行時相關的所有數據結構和高速緩存。不清除任何用戶/插件定義的配置數據。沒有運行任何應用程序,忽略所有產品規范且不顯示用戶界面(例如,不會繪制閃屏)
- -install <location> (Main)
- 相當于將 osgi.install.area 設置為 <location>
- -keyring <location> (Runtime)
- 權限數據庫在磁盤上的位置。此自變量必須與 -password 自變量一起使用。
-
- -nl <locale> (OSGi)
- 相當于將 osgi.nl 設置為 <locale>
-
-
- -noLazyRegistryCacheLoading (Runtime)
- 相當于將 eclipse.noLazyRegistryCacheLoading 設置為 "true"
- -noRegistryCache (Runtime)
- 相當于將 eclipse.noRegistryCache 設置為 "true"
-
-
- -noSplash (Executable, Main)
- 控制是否顯示閃屏
- -os <operating system>(OSGi)
- 相當于將 osgi.os 設置為 <operating system>
-
- -password <password> (Runtime)
- 權限數據庫的密碼
-
-
- -pluginCustomization <location> (Runtime)
- 相當于將 eclipse.pluginCustomization 設置為 <location>
- -product <id> (OSGi) NEW
- 相當于將 eclipse.product 設置為 <id>
- -showSplash <command> (Main)
- 指定要用來顯示閃屏的命令。通常由 Eclipse 可執行文件提供。
-
- -user <location> (OSGi) NEW
- 相當于將 osgi.user.area 設置為 <location>
- -vm <path to java executable> (Executable, Main) NEW
- 傳遞給 Eclipse 可執行文件后,此選項用來查找用來運行 Eclipse 的 Java VM。必須是指向適當的 Java 可執行文件的完整文件系統路徑。如果未指定,Eclipse 可執行文件將使用搜索算法來查找合適的 VM。不管怎樣,可執行文件會使用 -vm 自變量將該路徑傳遞至用于 Java Main 的實際 VM。然后,Java Main 將此值存儲在 eclipse.vm 中。
- -vmargs [vmargs*] (Executable, Main) NEW
- 傳遞給 Eclipse 后,此選項用來定制運行 Eclipse 的 Java VM 的操作。如果指定了此操作,此選項必須位于命令行的末尾。即使未在可執行命令行上指定,可執行文件也將使用 -vmargs 自變量自動將相關自變量(包括正在啟動的類)添加至傳遞到 Java 的命令行。然后,Java Main 將此值存儲在 eclipse.vmargs 中。
- -ws <window system> (OSGi)
- 相當于將 osgi.ws 設置為 <window system>
廢棄的命令行自變量
下列命令行自變量不再相關或已被取代,并由運行時占用而不傳遞至為保留向后兼容性而運行的應用程序。
- -boot
- 請參閱 -configuration
- -classLoaderProperties
- 不再相關
-
- -firstUse
- 不再相關
-
- -newUpdates
- 不再相關
-
- -noPackagePrefixes
- 不再相關
-
-
- -noUpdate
- 不再相關
-
- -plugins
- 不再相關
- -update
- 不再相關
其它
下列命令行自變量是由各個 Eclipse 插件定義的,且僅當安裝、解析并激活定義插件后才受支持。
- -noVersionCheck (workbench)
- <description>
- -perspective (workbench)
- <description>
- -refresh (org.eclipse.core.resources)
- <description>
- -showLocation (org.eclipse.ui.ide.workbench)
- <description>
- -allowDeadlock
- <description>
系統屬性
Eclipse 運行時使用下列系統屬性。注意,以“osgi”開頭的屬性是特定于 OSGi 框架實現的,而以“eclipse”開頭的屬性則特定于位于 OSGi 框架之上的 Eclipse 運行時。
其中許多屬性具有命令行等效項(請參閱命令行自變量一節以及花括號 {} 中的值)。用戶可任意選用命令行或屬性設置來指定值。可以下列方式設置屬性:
- 使用 -DpropName=propValue 作為 Java VM 的 VM 自變量
- 在 config.ini 文件中的適當配置區域設置想要的屬性
- eclipse.application {-application}
- 要運行的應用程序的標識。此處給定的值覆蓋由要運行的產品(請參閱 eclipse.product)定義的任何應用程序。
- eclipse.commands
- sdf
- eclipse.consoleLog
- 如果為“true”,還將任何日志輸出發送至 Java 的 System.out(通常會返回至命令 shell)。與 -debug 組合時很方便。
- eclipse.debug.startupTime
- 啟動用于此會話的 Java VM 的時間(以毫秒計)
- eclipse.exitcode
- <description>
-
- eclipse.exitdata
- <description>
-
- eclipse.manifestConverter
- 將舊的 plugin.xml 文件轉換為 manifest.mf 文件時使用的清單轉換器類的類名
- eclipse.noExtensionMunging
- 如果為“true”,舊注冊表擴展將保持原樣。缺省情況下,將更新這些擴展以使用 Eclipse 3.0 中的新擴展點標識。
- eclipse.noLazyRegistryCacheLoading {-noLazyRegistryCacheLoading}
- 如果為“true”,將釋放平臺的插件注冊表高速緩存裝入優化。缺省情況下,僅在需要時才從注冊表高速緩存(如果有)裝入配置元素,從而減少內存占用量。此選項在啟動時強制完全裝入注冊表高速緩存。
- eclipse.noRegistryCache {-noRegistryCache}
- 如果為“true”,則不會讀寫內部擴展注冊表高速緩存
- eclipse.pluginCustomization {-pluginCustomization}
- 包含插件首選項的缺省設置的屬性文件的文件系統位置。這些缺省設置覆蓋在主要功能部件中指定的缺省設置。相對路徑是相對于 Eclipse 本身的當前工作目錄解釋的。
- eclipse.product {-product}
- 要運行的產品的標識。它控制各種品牌信息以及使用的應用程序。
- eclipse.vm {-vm}
- 指向用來運行 Eclipse 的 Java 可執行文件的路徑。此信息用來構造重新啟動命令行。
- eclipse.vmargs {-vmargs}
- 列示用來運行 Eclipse 的 VM 自變量。此信息用來構造重新啟動命令行。
- osgi.adaptor
- 要使用的 OSGi 框架適配器的類名。
- osgi.arch {-arch}
- 請參閱 -arch
- osgi.baseConfiguration.area
- asf
- osgi.bundles
- 用逗號分隔的 bundle 列表,它們是自動安裝的,在系統啟動并運行后可選擇啟動它們。每個條目的格式是:
<URL | simple bundle location>[@ [<start-level>] [":start"]]
如果省略啟動級別(大于零的整數),則框架將對 bundle 使用缺省啟動級別。如果添加了“start”標記,則在安裝后,會將 bundle 標記為已啟動。簡單 bundle 位置是相對于框架的父目錄解釋的。啟動級別指示 bundle 應該運行于的 OSGi 啟動級別。如果未設置此值,系統將計算適當的缺省值。
- osgi.clean
- 如果設置為 "true",則 OSGi 框架和 eclipse 運行時所用的任何高速緩存的數據將被全部擦去。這將清理用來存儲 bundle 從屬項資源和 eclipse 擴展注冊數據的高速緩存。使用此選項將強制 eclipse 重新初始化這些高速緩存。
- osgi.configuration.cascaded
- 如果設置為“true”,將把此配置層疊至父代配置。有關詳細信息,請參閱有關位置的一節。
- osgi.configuration.area {-configuration}
- 此次平臺運行的配置位置。配置決定哪些插件將運行以及其它各項系統設置。有關詳細信息,請參閱有關位置的一節。
-
- osgi.configuration.area.default
- 此次平臺運行的缺省配置位置。配置決定哪些插件將運行以及其它各項系統設置。僅當未對 osgi.configuration.area 設置任何值時才使用此值(即,缺省設置)。有關詳細信息,請參閱有關位置的一節。
-
- osgi.console {-console}
- 如果設置為非空值,則將啟用 OSGi 控制臺(如果安裝了)。如果該值是合適的整數,將把它解釋為端口,控制臺在該端口上偵聽其輸出并引導至給定端口。便于調查系統的狀態。
-
- osgi.console.class
- 要運行的控制臺的類名(如果已請求)
- osgi.debug {-debug}
- 如果設置為非空值,平臺將置于調試方式。如果此值是字符串,則將它解釋為 .options 文件的位置。此文件指示哪些調試點可供插件使用以及是否啟用了它們。如果未指定位置,平臺將在安裝目錄下搜索 .options 文件。
- osgi.dev {-dev}
- 如果設置為空字符串,就會打開 DEV 方式。還可將此屬性設置為用逗號分隔的將添加至每個插件的類路徑的類路徑條目或設置為指向包含一組插件的定制類路徑添加項的 Java 屬性文件的 URL。對于要求定制的 DEV 時間類路徑的每個插件,該文件都將包含以下格式的條目:
<插件標識>=<用逗號分隔的要添加的類路徑條目的列表>
其中插件標識“*”與另行聲明的所有插件匹配。
- osgi.framework
- OSGi 框架的 URL 位置。當 Eclipse 安裝中斷時很有用。有關詳細信息,請參閱有關位置的一節。
- osgi.frameworkClassPath
- 用逗號分隔的用于 OSGi 框架實現的類路徑條目的列表。相對位置是相對于框架位置解釋的(請參閱 osgi.framework)
- osgi.install.area {-install}
- 平臺的安裝位置。此設置指示基本 Eclipse 插件的位置,在 Eclipse 安裝中斷時很有用。有關詳細信息,請參閱有關位置的一節。
- osgi.instance.area {-data}
- 此會話的實例數據位置。插件使用此位置來存儲它們的數據。例如,資源插件使用這個作為項目的缺省位置(aka 工作空間)。有關詳細信息,請參閱有關位置的一節。
-
- osgi.instance.area.default
- 此會話的缺省實例數據位置。插件使用此位置來存儲它們的數據。例如,資源插件使用這個作為項目的缺省位置(aka 工作空間)。僅當未對 osgi.instance.area 設置任何值時才使用此值(即,缺省設置)。有關詳細信息,請參閱有關位置的一節。
-
- osgi.manifest.cache
- 發現和生成的清單的位置。缺省位置在配置區域中,但清單高速緩存可以單獨存儲。
- osgi.nl {-nl}
- Eclipse 平臺將在其上運行的語言環境的名稱。NL 值應遵循標準 Java 語言環境命名約定。
- osgi.os {-os}
- 操作系統值。該值應為 Eclipse 已知的 Eclipse 處理器體系結構名稱之一(例如,x86 和 sparc 等等)。
- osgi.splashLocation
- 啟動 Eclipse 時要顯示的閃屏(.bmp 文件)的絕對 URL 位置。此屬性覆蓋 osgi.splashPath 中設置的任何值。
- osgi.splashPath
- 用逗號分隔的用來搜索名為 splash.bmp 的文件的 URL 的列表。此屬性被在 osgi.splashLocation 中設置的任何值覆蓋。
- osgi.user.area {-user}
- 用戶區域的位置。用戶區域包含特定于操作系統用戶而且獨立于任何 Eclipse 安裝、配置或實例的數據(例如,首選項)。有關詳細信息,請參閱有關位置的一節。
- osgi.user.area.default
- 用戶區域的缺省位置。用戶區域包含特定于操作系統用戶而且獨立于任何 Eclipse 安裝、配置或實例的數據(例如,首選項)。僅當未對 osgi.user.area 設置任何值時才使用此值(即,缺省設置)。有關詳細信息,請參閱有關位置的一節。
- osgi.ws {-ws}
- 窗口系統值。該值應為 Eclipse 已知的 Eclipse 窗口系統名稱之一(例如,win32 和 motif 等等)。
- osgi.syspath
- <仍在使用 xxx?修正名稱>
位置
Eclipse 運行時定義一些位置,給插件開發者提供讀取/存儲數據的上下文并使 Eclipse 用戶能控制數據共享作用域和可視性。Eclipse 定義下列位置概念:
- User (-user) {osgi.user.area} [@none, @noDefault, @user.home, @user.dir, filepath, url]
- 顧名思義,用戶位置是特定于用戶的。通常,用戶位置是基于 Java
user.home
系統屬性的值,但是,可覆蓋此值。在用戶位置中可找到諸如用戶范圍的首選項和登錄信息之類的信息。
- Install (-install) {osgi.install.area} [@user.home, @user.dir, filepath, url]
- 安裝位置是安裝 Eclipse 本身的地方。實際上此位置是要運行 startup.jar 或 eclipse.exe 的父代的目錄(通常為“eclipse”)。對于普通用戶,應將此位置視為只讀,因為安裝可由許多用戶共享。可設置安裝位置并從 Eclipse 的其余部分對 startup.jar 去耦。
- Configuration (-configuration) {osgi.configuration.area} [@none, @noDefault, @user.home, @user.dir, filepath, url]
- 配置位置包含標識和管理要運行的安裝的(子)集的文件。這樣,每個安裝可能會有許多配置。安裝可能附帶缺省配置區域,但通常的啟動方案涉及查找可寫度更高的配置位置的運行時嘗試。
- Instance (-data) {osgi.instance.area} [@none, @noDefault, @user.home, @user.dir, filepath, url]
- 包含用戶定義的數據構件的實例位置。例如,資源插件使用實例區域作為工作空間位置,因此它是項目的缺省主目錄。其它插件可在此位置中隨意寫下任何文件。
雖然用戶可以設置這些位置當中的任何一個,但是如果沒有給定值,Eclipse 將計算出合理的缺省值。設置位置最常見的用例就是實例區域或工作空間(在 IDE 環境中)。要對特定數據集運行缺省 Eclipse 配置,可指定:
eclipse -data c:\mydata
更多詳細信息
位置是一些 URL。為簡單起見,也接受文件路徑并且它們將自動轉換為 file: URL。為更好地控制以及更方便起見,還有一些可以使用的預定義符號位置。注意,并非位置類型和符號值的所有組合都有效。下表詳細說明了哪些組合是可能的。由于缺省用例用于要設置的所有位置,而且它是有效且可寫的,因此有些插件在其它設置中可能會失效,即使它們被列示為可行也是如此。例如,如果未定義實例區域,期望重點放在用戶數據上的插件(例如,Eclipse 資源插件)來完成許多任務是不合理的。將由插件開發者來選擇他們支持的設置并相應地設計它們的功能。
- @none
- 指示不應顯式設置相應位置或設置為其缺省值。例如,沒有用戶數據的 RCP 樣式應用程序可以使用 osgi.instance.area=@none 來防止將外來文件寫入磁盤。@none 后面不能跟任何其它路徑段。
- @noDefault
- 強制取消位置的定義或顯式定義位置(即,Eclipse 不會自動計算缺省值)。這在您想在相應的位置允許數據但 Eclipse 缺省值不合適的時候很有用。@noDefault 后面不能跟任何其它路徑段。
- @user.home
- 引導 Eclipse 計算相對于用戶的主目錄的位置值。@user.home 后面可跟其它路徑段。在所有情況下,字符串“@user.home”僅被替換為 Java“user.home”系統屬性的值。例如,設置
osgi.instance.area=@user.home/myWorkspace
將導致值
file:/users/bob/myWorkspace
- @user.dir
- 引導 Eclipse 計算相對于當前工作目錄的位置值。@user.dir 后面可跟其它路徑段。在所有情況下,字符串“@user.dir”僅被替換為 Java“user.dir”系統屬性的值。例如,設置
osgi.instance.area=@user.dir/myWorkspace
將導致值
file:/usr/share/eclipse/myWorkspace
位置/值 |
支持缺省值 |
文件/URL |
@none |
@noDefault |
@user.home |
@user.dir |
實例 |
是 |
是 |
是 |
是 |
是 |
是(缺省值) |
配置 |
是 |
是 |
是* |
是* |
是 |
是 |
安裝 |
否 |
是 |
否 |
否 |
是 |
是 |
用戶 |
是 |
是 |
是 |
是 |
是 |
是 |
* 指示此設置是在技術上可行但實際操作時很難管理。特別是在沒有配置位置的情況下,Eclipse 運行時可能只能啟動 OSGi 框架而已。