Android上web伺服器i-jetty搭建(原始碼編譯)
一. Jetty簡介
Jetty是一個用Java實現的開源的Http和Web伺服器,包括HTTPserver, HTTP client和javax.servlet container。
Jetty的應用非常廣泛,包括:二. i-Jetty原始碼編譯
1. maven安裝和配置(編譯i-jetty過程中會用到maven)
(3)設定maven環境變數(配置maven環境之前要確定配置好了jdk的環境)
maven_home=D:\apache-maven-2.2.1
PATH=%maven_home%\bin
(4)測試maven是否成功:mvn -v
關於maven配置可以參考:http://www.cnblogs.com/smile2010/archive/2011/11/22/2259535.html
3. 下載原始碼解壓後,裡面有兩個資料夾i-jetty-server與i-jetty-ui還有一個pom.xml檔案;
命令列模式下,進入pom.xml所在目錄,執行命令: mvn clean install,這樣就下載了一堆jar,然後會自動編譯,當然通常會是 BUILD FAILURE的現象。下載的jar包一般會儲存在C:\Users\你的名字\.m2 目錄下。
4. 在eclipse中建立i-jetty的android專案,將下載的i-jetty原始碼覆蓋進去;
5. 將下面目錄下的 jar引入到i-jetty專案的libs中:C:\Users\賬戶名\.m2\repository\org\eclipse\jetty,還需要servlet-api-2.5.jar。如果下載資料夾中沒有的話可以百度一下。
主要包含
因為這些jar包裡面會有about.html這個檔案,所以導致編譯出錯,這時就要逐個刪除了。
6. 編譯並執行。
三. web專案釋出到裝置上去
因為android上的java虛擬機器不能直接解釋執行.class檔案,所以首先需要把web專案中的.class檔案和.jar檔案轉換成虛擬機器能識別的.dex檔案
這裡假設web專案的目錄在:E:\demo
1. 需要將WEB-INF/classes目錄和lib目錄下的檔案,用dx命令處理成classes.dex並放到lib目錄下。
dx.bat --dex --output=E:\demo\WEB-INF\lib\classes.zip E:\demo\WEB-INF\classes E:\demo\WEB-INF\lib
2. 打成war包
cd E:\demo
jar -cvf demo.war *.*
3. 生成classes.zip後,可以將原先的.class和.jar刪除掉。
4. 通過i-jetty的download功能,把war下載到裝置上去,
也可以直接把demo.war放到/sdcard/jetty/webapps/目錄下。
5. 啟動i-jetty伺服器。
四. 參考資料
1. http://www.cnblogs.com/java-koma/articles/2341791.html
2. http://blog.csdn.net/feifei454498130/article/details/8070254