除錯 Java Bean 的進階選項

在正常開發期間,您應該不需要考慮每一視覺化編輯器實例所使用的 VM。然而,進階使用者可以配置工作台,使得任何傳給 VM 之 System.outSystem.err 的訊息,都寫入工作區之 .metadata 目錄中的 .log 檔。

用來執行 Java Bean 的虛擬機器 (VM) 與工作區在其中執行的 VM 並不相同。而是針對每一個視覺化編輯器的實例個別建立一個 VM。這個 VM 的類別路徑會設為該專案之 Java 建置路徑中的項目。如果 Java 建置路徑在視覺化編輯器中開啟時變更,則任何開啟的編輯器都必須關閉再重新開啟,才能反映更新的建置路徑。

當工作台啟動時,它可給定 -DEBUG 選項,這個選項指向一個文字檔:

-DEBUG file:/c:/temp/options.txt

除錯檔包含了視覺化編輯器所讀取的項目。如果檔案包含下面這一行,任何傳給 System.outSystem.err 的訊息都會顯示在主控台中:

org.eclipse.jem.proxy/debug/vmtraceout=true

除了顯示視覺化編輯器所用之 VM 的主控台輸出,您也可以在除錯模式中啟動它,並執行遠端除錯。 這個實務尚未最佳化,且在視覺化編輯器的未來版本中可能會有所變更。 不過,我們還是在這裡說明,以便您需要在設計時期執行 Java Bean 的除錯作業。 如果要執行遠端除錯,您將需要執行兩個工作台;一個是含要除錯的 Java Bean 的工作台,另一個則是可以執行 Socket 型遠端除錯的工作台。第二個工作台可在同一部機器上執行,也可以在不同的機器上執行。如果要啟用視覺化編輯器之 VM 的除錯作業,-DEBUG 檔應包含下面這一行:

org.eclipse.jem.proxy/debug/debugvm=true

每次視覺化編輯器啟動 VM 時,它會詢問您是否要在除錯模式中啟動。 這則訊息會寫入對話框中,或者如果 -DEBUG 檔含有 org.eclipse.jem.proxy/debug/ioconsole=true 項目,則會寫入 System.out 中。

如果訊息寫入 System.out 中,它會要求您在 System.in 輸入 Y 或 N,並等待:

您要在除錯模式下啟動遠端 vm(HelloFrame.java 的專案 (Test)-VM)嗎(輸入 Y 或 N):

Test 專案中的 HelloFrame.java 類別以視覺化編輯器開啟時,會出現前一個對話框。如果您選取「是」或是在主控台中輸入 Y 並按下 Enter 鍵,則 VM 會利用 Socket 連接器,在設定了 -Xdebug 的暫停模式中啟動。這時會配置可用的埠。 之後,會告訴您它的號碼。

如果訊息寫入 System.out,則它將會等待 System.in 上的輸入。

現在您必須將除錯器連接到埠號 7078。請在除錯器連接時輸入 'y'。如果除錯器未連接,程式將不會正常運作。如果您無法連接除錯器,請按 'n'。這還是會導致錯誤,但是可以有較好的清除效果。請輸入 'y' 或 'n':

下一個步驟是將遠端除錯器連接到埠號 7078。當遠端除錯器連接時,執行視覺化編輯器的工作台實例會暫停執行, 因此您必須使用另一個應用程式提供的除錯器。如果另一個應用程式是工作台的另一個實例, 您可以使用除錯 > 除錯功能表選項,並建立新的「遠端 Java 應用程式」配置,來開始進行遠端除錯。

請輸入之前寫入 stdout 的埠號(本例中為 7078)。如果除錯器位在不同的機器上, 您應該在主機欄位中輸入要除錯之工作台的執行機器的 IP 位址。 如果要起始遠端除錯器,請在被除錯的工作台 stdin 主控台上按一下除錯,接著輸入 y

除了提示您針對每個視覺化編輯器實例所使用的 VM 進行除錯之外,您也會看到提示您除錯專案本身的訊息:

您要在除錯模式下啟動遠端 vm(專案 (Test)-Beaninfo)嗎(輸入 Y 或 N):

這適用於用來進行內部檢查且執行 java.beans.Introspector 的 VM,且與視覺化編輯器的 VM 有所區別,因為它不會指定特定的 Java 程式檔名稱。專案內的 Java Bean 第一次需要任何 BeanInfo 時,就會啟動這個 VM,且只要專案維持開啟狀態,它也會維持在作用狀態。 對這種專案進行除錯,可讓您在內部檢查 Java Bean 時,逐步執行並分析 BeanInfo 類別中的任何程式碼。每個使用它的專案的每個 Java Bean 類別都會執行一次內部檢查。 結果會保留在快取記憶體中,以提高效能。 如果任何時候您需要清除為某個專案所保留之 BenInfo 資訊的快取記憶體,您可以從專案的蹦現功能表中關閉開啟這個專案。

相關概念
Java Bean 異常狀況
相關作業
將視覺化類別執行為 Java Bean 或應用程式
配置執行 Java Bean 或應用程式的選項
對視覺化 Java Bean 或應用程式進行除錯
測試和部署 Applet

(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved.