windows web伺服器程式碼移植到linux所採的坑
windows web伺服器程式碼移植到linux所採的坑
一、匯入問題
不能直接將編譯後的class檔案放入linux伺服器中,雖說java是跨平臺性好,但是windows下的class檔案是不能在linux下直接執行的.
二、編譯問題
1. 編碼問題
在linux端編譯程式碼時,最先遇到的就是編碼問題,預設是按ACSII碼編譯的,不行:
所以試著用utf-8
也不行,那用GBK
成了,所以一定要記住自己檔案的編碼
但是還有一種情況,上述幾種編碼都不行,這個時候,可以在windows上把檔案轉碼,
右鍵你的原始碼,用記事本開啟,點選檔案–>另存為–>修改編碼,即可,如果還不行,直接複製程式碼,vi編集貼上到伺服器裡
2. 無法編譯問題
由於需要用到tomcat安裝目錄下的lib下的servlet-api.jar,所以需要手動設定classpath,否則凡是繼承自HttpServlet的程式碼都將無法編譯
解決方法:修改/etc/profile檔案,把上述檔案加入
三、路徑問題
匯入linux伺服器中的檔案並不能完全照搬idea等工具中的檔案路徑,而應該採用如下方式:
在tomcat目錄下的webapps下放入總的工程,假設為目錄A
然後在A下的WEB-INF下新建classes檔案,用來存放java程式碼編譯後的類,注意包名不能亂改,要跟java程式碼中的報名保持一致.
比如一個程式碼為import cn.itcast.chapter06.session.example,那麼該程式碼編譯後的class檔案也一定要放在對應的目錄下.即tomcat根目錄下的webapps下的工程A下的WEB-INF下的classes下的cn下的itcast下的chapter06…以此類推才可以,否則執行伺服器時可能會出現檔案找不到或者異常.
四、如何查錯
linux下的tomcat伺服器不能像windows可以隨時檢視伺服器是否出錯,但是可以通過日誌來檢視,
日誌就在tomcat根目錄下的logs,可以根據日誌進行排錯