java 遠端偵錯(java application與web application)

來源:互聯網
上載者:User

標籤:

    如摘要中所述,在聯調時經常性的需要將程式部署到測試機器上,此時要調試顯得很不方便。以前的做法都是在程式中列印資訊來進行追蹤,但是這種方法很有局限性,因為往往無法一次就定位到有問題的地方,需要不斷的修改程式列印的語句,不斷的重啟應用,這需要花費大量的時間和精力。因此,採用遠端偵錯會是一種好的解決方式。下面將會對java application和web application兩種入手進行說明。

一、Java Application的遠端偵錯

1、準備要調試的server端環境

首先準備一段小的代碼,並且在main方法中調用,我這邊寫了一段沒有任何意義的代碼,僅僅是為了示範需要,如下:

package com.zzq.test;/** * @author zhengzhq E-mail:[email protected] * @version 建立時間:2015-9-4 下午02:59:35 */public class RemoteDebug {public static void checkName(String name) {if ("name1".equals(name)) {System.out.println("this is name1");} else if ("name2".equals(name)) {System.out.println("this is name2");} else {System.out.println("unknow name " + name + "!!!");}}public static void main(String[] args) {if (args.length > 0) {checkName(args[0]);} else {checkName("unknow");}}}

如果運行中有傳遞值,將第一個值作為name傳遞給方法,很簡單的代碼。通過開發工具export-runnable jar,指定好執行的Main class->finish,jar包產生完成,我這邊匯出為debug.jar。此時在命令列執行java -jar debug.jar,出現如:

在java -jar中加入其他的啟動資訊,則程式會開啟遠端偵錯模式,並處於阻塞狀態,如下:

java -Xms700m -Xmx700m -Xdebug -server -Xrunjdwp:transport=dt_socket,server=y,address=12345 -jar debug.jar name1

其中address為指定的連接埠。

2、指定調試的client端環境

調試的代碼由於本地環境擁有,所以直接在IDE中右擊->debug As->Debug Configurations,彈出如下視窗,在Remote Application下可以配置要遠端偵錯的項目:

配置完成後,點擊彈出窗下的debug,則程式自動會與調試的server端串連上。如果server端沒啟動,則意味著連接埠沒監聽,會報Connection refused;否則程式根據設定的斷點進入執行。

二、Web Application

將應用打成war包放到tomcat/webapps目錄下,然後設定tomcat/conf/startup.sh,在前面加入如下的指令碼

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345

然後啟動即可,啟動過程中會有列印一行關於遠端偵錯監聽:

用戶端的配置與Java Application一致,運行即可進行調試i

java 遠端偵錯(java application與web application)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.