修改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會自動提示是否需要重啟服務的
=======================================
-
修改Tomcat的配置檔案
-
找到部署tomcat的服務路徑(譬如:D:\Tomcat6.0\apache-tomcat-6.0.36\conf),解釋:tomcat路徑就是執行專案的部署伺服器路徑。
-
在conf資料夾下找到server.xml檔案 修改裡面的reloadable=true 為reloadable=false;
-
reloadable屬性屬於部署專案的<context/>標籤的屬性。
-
譬如:<Context debug="0" docBase="D:\JavaCode\E-bsoft\CDCPro\WebRoot" path="/CDCPro" reloadable="false"/>
相關文章
- Maven專案熱部署,修改程式碼後不用重啟tomcat伺服器Maven熱部署Tomcat伺服器
- 修改Tomcat服務中的埠配置Tomcat
- java方法的神奇修改(重寫)Java
- tomcat8.5服務開啟zabbix遠端監控配置修改Tomcat
- Centos修改DNS重啟或者重啟network服務後丟失問題處理CentOSDNS
- 企業雲盤檔案服務標識修改
- Nginx學習系列三Nginx的啟動、停止、修改配置檔案後重啟Nginx
- Ubuntu 下啟動/停止/重啟mysql服務UbuntuMySql
- cmd中如何重啟mysql服務MySql
- HTTP檔案服務HTTP
- 服務-tomcatTomcat
- 不用 mv 命令也能移動檔案的方法
- 使用Java修改字幕檔案Java
- Laravel 定時任務,避免重複的方法-----使用檔案鎖Laravel
- Nagios之批量修改nrpe配置檔案並自動重啟iOS
- 命令列重啟遠端桌面服務命令列
- linux下重啟網路服務Linux
- 如何修改docker容器的重啟策略(重啟模式)?Docker模式
- 不用刪文字,減小Word檔案的大小方法
- win10服務怎麼開啟 開啟服務管理器的方法Win10
- 系統重啟後DNS地址預設修改修改引起的一次事故(Tomcat報錯:java.net.UnknownHostException)DNSTomcatJavaException
- 關於ubuntu修改hosts檔案的方法Ubuntu
- 監聽檔案修改的四種方法
- Java 例項 - 修改檔案最後的修改日期Java
- 在Linux中修改開啟檔案數量限制的3種方法Linux
- 解決"安裝檔案有掛起的檔案,請重啟電腦"的通用解決方法
- Ubuntu關閉(重啟)網路服務命令Ubuntu
- docker啟動的服務有匯出檔案的功能,檔案一直匯出失敗Docker
- Oracle歸檔檔案丟失導致OGG不用啟動Oracle
- DBF檔案怎麼開啟?DBF檔案的開啟方法教程
- 在Linux中,如何啟動、停止或重啟服務?Linux
- Linux cifs檔案服務Linux
- 使用FileBrowser搭建檔案服務
- 登錄檔檔案修改開啟程式的簡單示例
- Mysql 啟動慢查詢日誌 (不用重啟)MySql
- 修改PHP上傳檔案大小限制的方法PHP
- 用重建控制檔案的方法修改oracle資料檔案路徑Oracle
- 修改資料檔案的位置的兩種方法