1. 程式人生 > >java菜鳥快速上手指南

java菜鳥快速上手指南

在最簡陋的開發環境下如何編寫除錯一個hello world程式。

適用於對java語法一無所知的菜鳥程式設計師,或者只想寫程式碼但對面向物件沒興趣的程式設計師

開發環境,只要你安裝了java sdk即可

原始碼hello.java:

  hello{
main(String[] args)
{
System.out.println(); }
}

編譯:

>javac hello.java

或者

>javac -g hello.java。

-g表示生成的目標檔案帶有除錯符號(推薦,因為後面使用jdb除錯程式碼需要這些符號)。編譯出來的目標檔案為hello.class

執行:

>java -cp . hello

注意hello後面不需要帶.class字尾名。

除錯:

進入hello.class和hello.java所在目錄。

>jdb -classpath . hello

進入了jdb的互動的除錯環境

在函式main中設定斷點:

>stop in hello.main

jdb顯示提示資訊:

Deferring breakpoint main.hello.

It will be set after the class is loaded.

上面的hello是類名,也就是hello.class中的hello,hello.java中的hello。main是函式名。如果在hello.java的第一行中有"package any_namespace;"語句,正確的類名就是any_namespace.main,那麼在jdb中設定斷點的語句為:

>stop in any_namespace.hello.main

設定完斷點後執行程式:

>run

可以看到jdb執行到斷點所在位置停了下來。設定斷點到類hello(在java中,類名和檔名實際上是一個意思)第3行的語句為:

>stop at hello:3

顯示錶達式的語句為print variable_name,顯示當前呼叫堆疊的語句為where,單步除錯的語句為next或者step(我想next和step的區別不用我多羅嗦了),顯示當前程式碼的語句為list。要看jdb的線上幫助,輸入help(聊勝於無的幫助而已)。

use命令為除錯符號指定所對應的原始碼檔案的搜尋路徑,如果我們刪除hello.java,然後重新啟動jdb,設定斷點,執行hello,jdb會報告"Source file not found: hello.java",這時候輸入use,可以看到當前的原始碼搜尋路徑為".",如果將hello.java拷貝到父目錄,然後輸入命令"use .;..",告訴jdb不僅去當前目錄搜尋hello.java,也要到父目錄搜尋hello.java,再輸入list命令,現在可以看到jdb正確地顯示了原始碼。

<iframe frameborder="0" src="http://www.google.com/gn/static_files/blank.html" style="position: absolute; display: block; opacity: 0.7; z-index: 500; width: 17px; height: 21px; top: 49px; right: 129px;" id="gn_notemagic"></iframe>