java ui调试_如何使用 IBM i System Debugger 调试 Java 程序
當在 IBM i 上使用 Java 時,您可以使用 Qshell Interpreter 或者 CL 命令提供的 Java tools,在 Qshell 環境和 IBM i 環境上進行與 Java 開發有關的操作。本文主要介紹如何在 IBM i 上調試 Java 程序,對于在 IBM i 開發 Java 程序的其他環節不在此介紹。
調試在 IBM i 上運行的 Java 程序有很多種選擇,其中最為方便有效的是使用 IBM i 提供的 IBM i System Debugger。IBM i System Debugger 提供了兩種調試方式,在綠屏上直接使用 CL 命令行調試和使用圖形化交互式人機界面調試(以下簡稱,IBM i System Debugger GUI)。本文主要站在使用者的角度介紹這兩種調試方法。
首先為了能夠調試 IBM i 的 Java Job ,JVM 必須被啟動。它是是伴隨調試功能的啟動而啟動的,調試引擎則負責 Java 程序的調試管理。當 JVM 啟動時調試引擎運行,這是成功調試 Java 代碼的關鍵所在。一旦 JVM 成功啟動了調試引擎,Java Job 就可使用綠屏上的 CL 命令去調試,或者使用 IBM i System Debugger GUI 調試。在 IBM i 上使用調試命令時,只要我們設定了和調試有關的參數即可自動啟動調試引擎,例如 OPTION(*DEBUG)、-g,不用特別設定和啟動調試引擎有關的參數。
其次在調試 Java 程序之前要對 Java 源程序進行編譯,這是任何程序被 CPU 執行前必須做的動作,目的是將源代碼編譯成機器可以識別的機器碼。編譯可調式的 Java 程序時,編譯命令中一定要設定 Debug View 參數,這樣 debugger 運行可執行程序時就會顯示出當前執行指令對應的源代碼,可以查看程序中定義的變量所對應的存儲空間等。針對 Java 程序可被調試的編譯,過程如下。輸入 CL 命令 ' MD DIR (java) '
創建 IFS 下的 /java 目錄,目的是把 IBM i 上要調試的 Java 源程序都放在 IFS 下的
/java 目錄下,進行之后的編譯。
輸入 CL 命令 ' qsh '
進入 Qshell,如圖 1 所示,java 即為 a) 創建的 java 目錄,在此目錄下存放將要進行編譯的 Java 源程序。
輸入 QSH 命令 ' cd /java ',輸入 QSH 命令 ' javac -g sleep.java '
進入 java 目錄下使用 javac 編譯產生出可調試的 sleep.class ,其中參數 -g 不可或缺,就是之前提到的產生 Debug View 參數的 DEBUG option。在此建議把源代碼文件 .java 文件和編譯產生的 .class 文件放在 IBM i 同一個目錄下,這樣便于 debugger 查找文件,如圖 2 所示。
Press F3 (Exit) 退出 Qshell,輸入 CL 命令 ' wrklnk java ' 確認查看 sleep.class 是否成功產生。
方法一,在 IBM i 綠屏上使用 CL 命令調試 Java 程序輸入 CL 命令 ' addenvvar envvar('CLASSPATH') VALUE('/java') '
設置環境變量 CLASSPATH 為 /java,即 Java 的 .class 文件存放在此目錄下。
輸入 CL 命令 'JAVA CLASS(sleep) OPTION(*DEBUG)'
使用 CL 命令 JAVA,CLASS(sleep) 中的 sleep 為要調試的 Java 程序的名字。其中設定
參數 OPTION(*DEBUG) 來啟動系統調試器執行 Java 程序。這里特別注意,只能調試一個 .class 文件,如果有一個 JAR 文件的文件名做為參數 CLASS 的關鍵字去調試,OPTION(*DEBUG) 參數是不被支持的。
利用 IBM i System Debugger 提供的相關調試操作,如 Press F6 設置或清除斷點、F10 單步執行程序、F11 操作變量、跟蹤查看、F12(Resume) 繼續執行等等。調試過程與在 IBM i 上調試其他程序一樣,部分相關的調試操作介紹如下。設置斷點
可以把光標移至要設定斷點的指令行處,Press F6 設置斷點或者直接輸入調試指令
'Break + 行號' 在調試指令行上(參考圖 4)。
單步調試
Java 程序在調試過程中可以在程序運行停止的開始位置或者程序運行停止的斷點位置
使用 step(F10) 單步執行程序,包括對程序調用的任何 function 的 step over 和 step
Into (F22) 的執行。如果繼續執行程序,Press F12(Resume)(參考圖 5)。
變量求值
在程序調試運行過程中有兩種方式可以查看變量的值:在調試命令行上 Enter 'EVAL + 變量名';
把光標移至代碼顯示的變量名位置出,Press F11(Display variable);
另外也可以通過 EVAL 命令改變變量的內容,在這里不做介紹。
?
Press F14 (Work with Module List).
您可以在此調試一個 Java 程序同時增加調試其他程序,提供了在 IBM i 上同時調試多個程序的方式(參考圖 8)。
調試步驟如下:當調試 Java 程序時,進入了調試模式顯示調試程序的代碼,此時 Press F14 (Work with Module List);
選擇 Opt 1(Add program) 增加要調試的 SRVPGM、PGM 或 CLASS;
選擇 Opt 5(Display module source) 顯示要調試的 *MODULE 的代碼;
按照正常調試程序的方法調試新增顯示的 *MODULE 代碼;
調試運行結束 Press F3 返回 Command Line。
方法二,使用 IBM i System Debugger GUI 去調試 IBM i 上的 Java 程序
IBM i System Debugger GUI 為用戶提供一個更為簡單、直觀的交互式圖形界面的調試方式,方便 IBM i 用戶的使用。對于 IBM i System Debugger GUI 安裝,需要到 IBM i 下的 IFS 里下載相應的 JAR 文件,具體步驟如下:在本地 PC 上建立新的文件夾 E:\DebuggerGUI;
在 IFS 里進到 /QIBM/ProdData/HTTP/Public/JT400/Lib,下載 jt400.jar 和 tes.jar 文件到本地 PC 新建的文件夾目錄下 E:\DebuggerGUI;
進入 http://javahelp.java.net/,下載 javahelp2_0_05.zip 文件;
在下載的 .zip 文件里,我們可以找到一個 jh2.0/javahelp/lib 的目錄。復制這個目錄下的 jhall.jar 文件到本地目錄 E:\DebuggerGUI 文件夾下;
在桌面上點右鍵選擇 New|Shortcut,建立 IBM i System Debugger GUI 的快捷方式顯示(參見圖 9);
輸入以下項目內容,javaw -cp jhall.jar;jt400.jar;tes.jar utilities.DebugMgr 在空白處,Press Next;
輸入新建的快捷方式名字,如 iDebugger,Press OK,在桌面上產生一個新的 icon。
在產生的新的 icon 上,點右鍵選擇 Properties,在 shortcut tab 下的' Start in:'內填入文件夾目錄,Press “OK”按鍵(參考圖 10)。
至此,IBM i System Debugger GUI 安裝完成,只要雙擊桌面上的 iDebugger 圖標,即可使用 IBM i System Debugger GUI 調試 Java 程序。具體調試步驟如下:雙擊桌面上的 iDebugger 圖標,首先開啟的是 Debug Manager。Debug Manager 是 IBM i System Debugger GUI 連接到需要調試 java 程序的 IBM i 機器的一個管理工具,如圖 11 所示。
?
如圖 11 所示我們可以單擊 Add System 按鍵來增加希望連接到的任意 IBM i 系統,只要在建立新系統時,輸入您在該系統上所擁有的 User ID 和 password。我們通過 Debug Manager 移除系統、新增或移除使用者等在這里不做過多介紹。Debug Manager 有提供兩個主要基本功能:可以方便的開啟含有被調試程序的 IBM i 機器,通過包含所有產生調試功能的機器列表前的' Debug '選項。
可以通過使用綠屏上的 CL 命令' STRDBG ',在 IBM i System Debugger GUI 上注冊要調試的程序。也就是說,只要 Debug Manager 與含有被調試程序的機器建立了連接,即 Status 為 Ready,在綠屏上輸入 CL 命令' STRDBG '后會產生 IBM i System Debugger GUI 方式從而替代了傳統的綠屏調試方式。
啟動 Start Debug, 通過 System Debug Manager 提供的 Start Debug ... 注冊要調試的 Java 程序并啟動。進入 System Debug 界面,用戶可以為所調試的程序選擇調試方法、輸入特殊的調試參數。Star Debug 注冊界面設置如圖 12 所示。
?
因為本次調試過程是用戶主導控制用戶程序的調試開啟,所以在選擇調試方法時選擇 Submit and debug program in batch job。另外被調試 Java 程序相關參數如 Type、Class name、Classpath 設定如圖所示,和在 IBM i 上的 Java 程序編譯生成的 .class 文件的相關參數是對應的。
Press “OK” 按鍵,立即啟動系統調試窗口。如圖 13 所示,調試窗口會顯示出被調試程序的源代碼,被調試程序的相關注冊信息如 Program、Job、System、User 等。
在 IBM i System Debugger GUI 的系統調試窗口可以像在綠屏下一樣的執行各種調試操作,而且更加的簡單直觀。IBM i 的 IBM i System Debugger GUI 和大部分 Debugger 功能基本相近,并且操作簡單。如設置斷點、單步運行、操作變量值、跟蹤查看棧調用和進程等等。圖 14 為正在調試的 Java 程序,紅色箭頭標示出斷點位置,黃色標示出的指令為當前執行指令,同時調試界面還提供了變量和指針地址的顯示,Call Stack 的信息、Threads 信息等。
?
?
?
?
?
?
從斷點位置指令 13,單步調試到指令 7,查看此時變量 mSecs 的值,也可以把光標移到 mSecs 處查看。可以看出此時 mSecs = 600,即 sleep(600) 實參附值給 mSecs。
以上對如何使用 IBM i System Debugger 調試 Java 程序給予了詳細的介紹,僅供使用者參考。IBM i System Debugger 為在 IBM i 開發 Java 程序的用戶提供了很好的調試工具,保證了用戶在 IBM i 上可以開發出更優質高效的 JAVA 程序。
總結
以上是生活随笔為你收集整理的java ui调试_如何使用 IBM i System Debugger 调试 Java 程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 获取excel最后一行_查找E
- 下一篇: java分层命名_JAVA基础篇(5)-