1. 程式人生 > >修改Java檔案不用重啟Tomcat服務的方法

修改Java檔案不用重啟Tomcat服務的方法

在tomcat的安裝目錄的conf檔案中找到server.xml這個檔案,在 <Host>結點裡面加上

<Context docBase="工程物理路徑" path="/工程名" reloadable="true" source="org.eclipse.jst.j2ee.server:工程名稱"/>  

比如對於開發專案test:新增

<Context docBase="D:/Tomcat/tomcat-7.0.4/test" path="/test" reloadable="true" source="org.eclipse.jst.j2ee.server:test

"/>

儲存檔案,在test的後臺類檔案中書寫一句System.out.println("哈哈");啟動tomcat,待順利列印後,修改列印內容,但不重啟tomcat,發現還真打印出來新的內容了;

一點麻煩的就是每開發一個專案都要去修改配置檔案,不過總比每次修改一個類都要重啟來的方便的多。

特別要注意,如果你將該專案從tomcat中刪除後,必須將這配置也刪除,否則啟動伺服器會一直包找不到test專案的錯的.

--------
修改
%TOMCAT_HOME%\conf\server.xml
大致如下:
<Context path="" docBase="ROOT" debug="0"  reloadable="true"/>

1.path後面寫<url-pattern>裡面的路徑,docBase寫你的web應用的名稱。比如你的目錄文tomcat/webapp/testapp。那麼docBase寫的是/testapp2.MyEclipse裝好後,只要指定了tomcat的目錄,修改Servlet後,伺服器會自動reload

==============================================

如何才能在不重啟伺服器的或者重新部署專案的情況下,修改了Java類檔案後可以繼續debug!當然還有個前提,那就是不能修改方法名或者引數個數,否則是一定要重啟的!

將 %tomcathome%\conf\context.xml 中的Context標籤修改如下:

  <Context reloadable="true">

  </Context>

///////////////////////////////////////////////////////

後來發現原來設定也很簡單,myEclipse設定對應的tomcat時,只需要在jdk的Optional Java VM arguments中新增如下設定:

-Xms256m -Xmx512m
-Dcom.sun.management.jmxremote=true  <!--StartFragment --> 

第一行是設定tomcat的記憶體的,這個根據個人具體環境更改,

第二行的實際意義其實我也不是很清楚,但增加這一行後,在不重啟服務的時候,修改了java類檔案可以繼續debug,這對於專案相對比較大的程式設計師來說有很大的幫助,因為專案在重啟的時候往往需要花費好幾分鐘的時間,而且有時候往往會因為一些設定需要反覆的除錯!

===========================================

在公司,一直很奇怪為什麼有的同事修改一個類實現的時候不用重啟tomcat也能部署新的變動,而有的卻不能。

之前特地比較過相互間系統和MyEclipse的配置,結果發現即使是一樣的配置也沒有用。

直到最近才發現,原來問題是在啟動服務時的區別,有的人用MyEclipse啟動Tomcat的時候使用的是Run模式,而有的則是使用Debug模式,於是發現問題所在了,MyEclipse會記住最後一次啟動服務的模式,然後以後每次啟動預設都是使用最後一次的模式啟動服務的,所以我們在配置一樣,操作一樣的情況下(使用工具欄的啟動按鈕[預設]),會出現不一樣的結果。

其實只要使用Debug模式啟動Tomcat服務就可以使MyEclipse自動部署改動過的類了。

修改啟動模式,可以進入Window->Show View裡面開啟Servers視圖面板,然後右擊其中的Tomcat使用Run Server/Debug Server啟動即可。

注:當方法體外的程式碼[方法名/引數/類修改]被修改時,Debug模式是無法更新這種變動的,MyEclipse會自動提示是否需要重啟服務的

=======================================

  1. 修改Tomcat的配置檔案

  2. 找到部署tomcat的服務路徑(譬如:D:\Tomcat6.0\apache-tomcat-6.0.36\conf),解釋:tomcat路徑就是執行專案的部署伺服器路徑。

  3. 在conf資料夾下找到server.xml檔案 修改裡面的reloadable=true 為reloadable=false;

  4. reloadable屬性屬於部署專案的<context/>標籤的屬性。

  5. 譬如:<Context debug="0" docBase="D:\JavaCode\E-bsoft\CDCPro\WebRoot" path="/CDCPro" reloadable="false"/>  


相關推薦

修改Java檔案不用Tomcat服務方法

在tomcat的安裝目錄的conf檔案中找到server.xml這個檔案,在 <Host>結點裡面加上 <Context docBase="工程物理路徑" path="/工程名" reloadable="true" source="org.eclip

[JAVA]修改Java檔案不用Tomcat服務方法

修改Java檔案不用重啟Tomcat服務的方法       在使用Eclipse+Tomcat開發Java專案的時候常常會碰到這樣的情況,已修改Java檔案Tomcat就會自動重啟,接下來就是漫長的等待服務重啟完畢。那其實大多數的Java檔案修改是沒有必要重啟服務的,只有一

修改配置檔案不用tomcat

專案需要頻繁更新配置檔案,每次改完需要先停tomcat,在重啟很麻煩~~~ 今天抽個空研究了一下,發現很多人都遇到類似的問題,然後綜合了下各個網站的解決辦法,我整了一個demo出來了,廢話不多說先上圖: 說明:配置檔案第一次只有一個屬性,test;待執行完後又新增一個新屬

IDEA修改java檔案不用Tomcat服務便可自動更新

一、問題使用IDEA開發Java時,修改java檔案後,需要重啟tomcat,程式碼方生效,重啟tomcat耗時較長,嚴重影響開發效率。二、解決1、配置tomcat時,on 'update' action和on frame deactivation選項都選擇 update c

不用Tomcat服務實現修改Java檔案後自動部署

可以修改類不用重啟Tomcat載入整個專案(手工啟動) 1.配置reloadable=true(自動過載) 2.使用Debug模式,前提是僅限於區域性修改。(修改類不用重啟--熱載入) 在使用Eclipse+Tomcat開發Java專案的時候常常會碰到這樣的情況,已修改Ja

eclipse mavenWeb專案真正實現熱部署(修改java程式碼和頁面檔案不用tomcat

        1.前言   先說熱部署的含義:   熱部署原來被定義為:tomcat啟動後,如果你往webapps目錄下,新增新的專案,tomcat會實現自動將其釋出的功能,這時,就叫做熱部署。   網上所實現的熱部署

Eclipse下設定tomcat,修改Java程式碼不必tomcat

以前一直都是使用MyEclipse,在新公司原來專案比較大,使用MyEclipse無論是啟動還是在編碼過程中都非常慢,優化了也是。所以換了Eclipse,速度雖然提高了,但是有點非常不友好,就是不管我怎麼修改Java程式碼,哪怕只有僅僅一行程式碼都需要重新啟動,才能使修改程式碼生效,而這點MyEcl

Java中Web程式修改配置檔案伺服器的方法

1. 配置tomcat伺服器:修改tomcat的部署配置為:從不自動釋出,禁用Web模組的自動從新裝入為:禁用 2. 在tomcat執行配置上新增vm引數:-noverify -javaagent:D:\RUNTIME\jrebel\jrebel.jar -Dmyproject.root=D:/pro

為什麼修改jsp不用tomcat,而修改servlet要tomcat

servlet和jsp本質都是servlet,執行時都是執行.class檔案。但是它們的部署方式不一樣。   servlet是先編譯後部署,修改完以後,MyEclipse進行編譯,然後部署.class檔案到servlet容器中。如果web伺服器已啟動,則之前class已被servl

windows設定開機啟動指令碼修改配置檔案服務

有一臺動態ip的測試機器,上面部署Nginx,然後每次重啟機器後ip總會變動,需要改nginx.conf配置檔案和重啟nginx服務。 所以要解決這個問題,想到的解決方法: 1、python指令碼來

maven專案 修改properties屬性檔案不用

1.專案中經常變化的值, 比如 圖片伺服器路徑啊‘第三方的路徑’,都需要放到 屬性檔案裡, 怎樣才能不用重啟 修改 屬性檔案呢, public static String getPropertiesValue(String name, String key) {     

Eclipse+Tomcat除錯修改程式碼不用容器配置方法

如上圖,無任是使用Server配置伺服器,還是通過配置檔案,在reloadable中應為false,即普通程式碼調整不重啟tomcat。 如:1、在server.xml檔案中配置為:<Context reloadable="true" path="/cxdai" d

用jrebel實現 jvm熱部署,修改不用tomcat

我們用eclipse開發時經常遇到一個麻煩的問題是修改類檔案後需重啟tomcat才能生效,即使使用一些tomcat外掛,有時修改了方法名或添加了類,也需要重啟。使用獲得jolt大獎的作品jrebel,就能輕鬆實現 jvm熱部署,無論任何情況修改類都不用重啟tomcat 首先

groovy修改代碼不用通過監聽記錄改變時間重新加載

.com 寫法 ges java代碼 好的 jpg 一個 png blog groovy是一個跟java 很像的腳本語言,基於jvm,寫法比java隨意一點可以跟java代碼很好的集合,如果項目中有用到規則可以在控制層使用groovy編寫代碼,調用規則。 在spring-m

前端熱部署(更改前端程式碼,不用tomcat,重新整理瀏覽器就可以)

注:如果使用Springboot可以是一個devtool實現熱部署 主要在於 On frame deactivation選項配置選擇為 Update classes and resourses(當且僅當在Deployment配置頁,對應的目的war形式配置為exploded

idea配置熱載入,開發不用tomcattomcat配置熱載入,釋出專案不用tomcat,在自己專案的context配置jdbc資料來源

在conf/server.xml裡面的Host加入Context節點,設定以下屬性 path="/project_name" docBase="project_name" debug="1" reloadable="true"> 然後在Context節點加入以下子節點 <Watche

IntelliJ IDEA - 熱部署(更新HTML/JSP/JS/CSS程式碼、不用Tomcat

前言 前端熱部署(更改前端程式碼,不用重啟tomcat,重新整理瀏覽器就可以)。   步驟 Ps:主要在於 On frame deactivation 選項配置選擇為 Update classes and resourses (當且僅當在Deployment配置頁

Eclipse下的maven工程自動熱部署方案(不用編譯,不用tomcat

今天接了一個小小的web工程專案,就基於eclipse+maven的開發環境搭建了一個javaweb專案。結果在開發的過程中無比痛苦:修改程式碼-重新構建-重啟tomcat-修改程式碼-重新構建-重啟tomcat。。。。簡直不能再浪費時間了,於是在網上搜了搜怎麼去實現mav

關於遠端操作Linux下的專案和tomcat服務

在windows系統上使用工具對已部署的專案進行更新或其他操作的時候難免要重啟tomcat,我們可以使用對專案進行操作,在進入Linux系統之前要先輸入一系列的資訊,進入之後找到專案所在目錄對其進行操

IntelliJ IDEA 在使用manven後的糾結(每次修改程式碼都要tomcat才能看效果嗎?),請各位大俠來看看問題

在加入manven後每次都要從其tomcat 或者重新package才能看到修改的效果這樣對於程式原來說很瘋狂,反正我是快瘋了,都不想用manven了 。 直接上圖: 上圖為沒用manven之前的專案 project Structure的配置也在,每次直接編譯 在tomca