免费看男阳茎进女阳道视频

                        24小時論文定制熱線

                        咨詢電話

                        熱門畢設:土木工程工程造價橋梁工程計算機javaasp機械機械手夾具單片機工廠供電采礦工程
                        您當前的位置:論文定制 > 畢業設計論文 >
                        快速導航
                        畢業論文定制
                        關于我們
                        我們是一家專業提供高質量代做畢業設計的網站。2002年成立至今為眾多客戶提供大量畢業設計、論文定制等服務,贏得眾多客戶好評,因為專注,所以專業。寫作老師大部分由全國211/958等高校的博士及碩士生設計,執筆,目前已為5000余位客戶解決了論文寫作的難題。 秉承以用戶為中心,為用戶創造價值的理念,我站擁有無縫對接的售后服務體系,代做畢業設計完成后有專業的老師進行一對一修改與完善,對有答辯需求的同學進行一對一的輔導,為你順利畢業保駕護航
                        代做畢業設計
                        常見問題

                        java項目畢業設計范例--Linux服務器軟件開發的移植

                        添加時間:2020/05/13 來源:未知 作者:admin
                        基于一個典型項目實例,詳細介紹了在Windows下命令行編譯、運行Java項目的步驟以及移植到Linux的變化和注意事項,具有實用性強、適用性廣的特點。
                        以下為本篇論文正文:

                          摘要:在Linux服務器軟件開發中,Java程序占了很大比例,很多Java項目先在Windows集成環境開發,然后移植到Linux服務器上,由于Linux服務器多以命令行模式安裝,所以需要在命令行模式下重新編譯和運行Java項目,該文基于一個典型項目實例,詳細介紹了在Windows下命令行編譯、運行Java項目的步驟以及移植到Linux的變化和注意事項,具有實用性強、適用性廣的特點。

                          關鍵詞:代碼移植; 命令行編譯; Java項目; Eclipse; Java包目錄;

                        Abstract

                          in the Linux server software development, the Java program accounted for a large proportion, many Java project development in integrated Windows environment first, and then transplanted to the Linux server, because the Linux server installed in command line mode, so you need to in command line mode to compile and run the Java project, this paper is based on a typical project example, introduces in detail under the Windows command line to compile, run Java project steps, and the change of ported to Linux and matters needing attention, has the characteristics of strong practicability and wide applicability.

                          Key words: code transplantation; Command line compilation; Java project; The Eclipse; Java package directory;

                          目錄
                          1 Java項目實例 ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅1
                          1.1 Java項目開發基本過程 ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅2
                          1.2 Java項目的包 ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ 3
                          1.3 Java的包目錄 ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ 4
                          2 Windows命令行編譯項目 ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅5
                          2.1 編譯com.prj01.fileUtility包┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ 6
                          2.2 編譯com.prj01.Bll包┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅┅┅┅7
                          2.3 編譯com.prj01.main和com.prj01.fileUtility包 ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅8
                          3 Windows命令行運行程序┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┅ ┅ ┅ ┅ ┅ ┅ 8
                          3.1 程序的運行目錄和主文件 ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┅ ┅ ┅ ┅ ┅ ┅ 9
                          3.2 參數的使用┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅10
                          3.3 運行項目主程序┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┅ 11
                          4 移植到Linux平臺┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┅ ┅12
                          5 其他問題┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ 12
                          5.1 項目引用Eclipse插件問題┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅┅13
                          5.2 JDK版本一致性問題┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅14
                          6 結束語┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅15
                          參考文獻┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅┅ ┅ ┅17
                          附錄(略)┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅  ┅ ┅ ┅ ┅ ┅  17

                          很多Java項目的部署、運行環境是Linux服務器,由于多數Linux服務器未安裝圖形桌面,進行Java項目開發很不方便,所以常用的辦法是先在Windows IDE環境下開發,編譯運行成功后,再移植到Linux服務器,這就要求項目技術人員掌握移植過程需要的命令語句和參數。本文基于一個Java項目實例,講述從Windows的Eclipse開發平臺移植到Linux的過程,移植的關鍵在于正確使用編譯和運行命令。

                          最簡單的Java程序只有一個Java原文件,代碼中不含有package語句,這樣的程序沒有實際意義,本文講述的項目實例含有多個Java原文件并劃分成多個包。另外,Windows和Linux系統都要預先安裝JDK,JDK的安裝和環境配置本文不再闡述。

                          1 Java項目實例

                          1.1 Java項目開發基本過程

                          如圖1所示,很多項目先在Windows集成環境下開發成功,然后在Windows的命令行模式下通過編譯,最后移植到Linux服務器,本文假定第一步已經在Eclipse中完成。

                          1.2 Java項目的包

                          Java項目可能含有幾十個甚至幾百個Java代碼文件,為了便于管理,將它們按照功能劃分為不同的模塊,在Java中稱之為包(package),為了詳細說明Java編譯過程,本文假定一個項目實例:com公司開發了一個Java項目,項目名稱為prj01,此項目含有多個Java代碼文件,將所有的Java文件按照功能劃分為主程序模塊、文件操作模塊、業務邏輯操作模塊和數據庫操作模塊等,每個模塊對應一個包,每個包的命名規則是:公司名。項目名。模塊名稱,如表1.

                          為了簡化問題,表中四個包分別含有一個Java文件(實際項目的包一般含有多個文件,后文將闡述:只要使用通配符*,包的文件多少并不影響編譯命令),文件之間的調用關系是:myMain.java調用BllClass.java定義的類,BllClass.java調用了fileUtilityClass.java和sqlUtilityClass.java定義的類,同時引用了jars目錄下的組件mail.jar和jnotify.jar,運行時還需要lib目錄下的動態鏈接庫notify.dll或notify.so(Linux環境下使用),如圖2.

                          表1 項目的包與包目錄

                          1.3 Java的包目錄

                          Java的包相當于軟件的功能邏輯模塊,它的代碼文件存放目錄稱為包目錄,無論使用什么樣的開發環境,都需要為每個包創建包目錄,例如Eclipse中創建包com.prj01.fileUtility時,Eclipse默認在src下創建包目錄com\prj01\fileUtility,包com.prj01.fileUtility的Java文件都放在此目錄下。編譯Java包其實就是編譯它的包目錄下的所有Java文件。由于每個包對其它包的引用、關聯情況不同,所以編譯命令需要的參數不同,本文按照由易到難的順序依次講解。

                          圖1 基本開發過程  

                          圖2 文件之間的引用關系  

                          假定已經使用Eclipse建立了表1所示的各個包和包目錄,在Windows命令行提示符下進入src的父目錄開始編譯。

                          2 Windows命令行編譯項目

                          2.1 編譯com.prj01.fileUtility包

                          圖2表明com.prj01.fileUtility文件工具包和com.prj01.sqlU-tility數據庫工具包的代碼沒有引用其它類和第三方組件jar,編譯命令為:javac src\com\prj01\fileUtility\*.java

                          此命令編譯了包com.prj01.fileUtility的所有Java原文件,通配符*表示編譯包目錄下的所有Java文件(也可以逐個指定Java文件名,各文件名之間用空格分隔,但是既煩瑣也無必要),默認情況下編譯生成的字節碼文件和Java文件在相同位置。

                          為完善編譯命令,建議添加以下參數:

                          1)使用-encoding解決編碼問題:

                          Java代碼文件的編碼可能是UTF-8,也可能是ANSI或GBK格式,為了保證編譯正確,項目中所有的Java文件、XML文件和其他類型文本文件應該使用相同編碼,本項目統一使用UTF8編碼,所以編譯命令含有-encoding UTF-8參數,更新的命令是:javac-encoding UTF-8 src\com\prj01\fileUtility\*.java.

                          2)使用-d指定字節碼文件存儲目錄:

                          參數-d指定編譯生成的字節碼文件放置的目錄,此目錄必須已經存在,否則編譯報錯。例如:參數-d classes表示在classes目錄下創建com.prj01.fileUtility包的同構目錄,編譯器會在classes\com\prj01\fileUtility目錄下生成fileUtilityClass.class(參見圖3),命令如下。

                          2.2 編譯com.prj01.Bll包

                          2.2.1 指定調用的類文件位置

                          上述命令編譯com.prj01.fileUtility包成功,但是用來編譯com.prj01.Bll包出現錯誤提示:找不到符號fileUtilityClass……,這是因為com.prj01.Bll作為業務邏輯包,它的BllClass.java調用了com.prj01.fileUtility和com.prj01.sqlUtility的Java類,編譯時找不到被調用類導致錯誤,解決辦法是使用-sourcepath參數指定被調用類文件的所在目錄,更新后的命令:

                          -sourcepath參數值為src,因為所有源代碼文件都在src及其子目錄下,無論各文件的類調用關系多么復雜,編譯器總能找到被調用的類。

                          2.2.2 引用擴展jar組件

                          由圖2所示,com.prj01.Bll包還引用了mail.jar和jnotify.jar擴展組件,這需要在編譯命令中指定jar文件位置,有2個參數可以使用:

                          1)參數-cp:指定每個jar的具體路徑,多個jar之間用分號隔開。

                          2)參數-DJava.ext.dirs:指定被引用jar所在目錄,多個目錄之間使用分號隔開。

                          考慮到Java項目可能引用很多jar,所以使用-DJava.ext.dirs更方便。另外,建議在參數-DJava.ext.dirs值中添加"$JA-VA_HOME/jre/lib/ext",這是因為-DJava.ext.dirs默認指向JDK類庫$JAVA_HOME/jre/lib/ext,自定義-DJava.ext.dirs的值會覆蓋此默認值,使得程序無法使用一些JDK自帶類庫,所以建議添加這個目錄,更新后的命令是:

                          此命令能夠成功編譯com.prj01.Bll包,另外com.prj01.Bll包還引用了動態鏈接庫文件notify.dll,但是對編譯無影響,因為dll在程序運行時才會加載。

                          2.3 編譯com.prj01.main和com.prj01.fileUtility包

                          圖2表明com.prj01.main包的myMain.java需要使用xml\my.xml,和dll類似,它在運行時才會加載,對編譯無影響,所以編譯com.prj01.main包只需關注對BllClass.java的調用即可,命令如下:

                          com.prj01.sqlUtility包的編譯和com.prj01.fileUtility包完全類似,不再贅述。

                          3 Windows命令行運行程序

                          3.1 程序的運行目錄和主文件

                          本文項目的主程序是com.prj01.main.myMain.java,項目編譯成功后在classes目錄下創建了各個包的包目錄并放置字節碼文件,主程序的字節碼文件是com\prj01\main\myMain.class,如圖3所示,classes就是主程序的運行目錄。

                          圖3 項目的包目錄和編譯生成目錄  

                          3.2 參數的使用

                          1)-Djava.ext.dirs:運行時程序需要引用組件mail.jar和jnotify.jar,所以需要此參數。

                          2)-sourcepath、-d和-encoding:這幾個參數僅限于編譯使用,運行時不需要。

                          3)-Djava.library.path:用于指定動態鏈接庫文件dll的位置,本文項目需要調用lib目錄下的jnotify.dll,所以設置-Djava.library.path=./lib/,表示在當前目錄下的lib中查找dll文件。

                          4)-D<propertyName>:這是很有用的一個參數,用它可以自定義一個屬性,在編寫Java代碼和運行程序時共同使用這個屬性。在本項目中,運行主程序需要讀取配置文件my.xml的內容,my.xml的路徑不應在程序代碼中寫死,而應該在運行時指定并"通知"程序,可以自定義屬性conf.xmlFile,在運行程序時設置參數-Dconf.xmlFile=d:\test\my.xml,而在代碼中用System.getProperty("conf.xmlFile")讀取conf.xmlFile屬性的值"d:\test\my.xml",這使得程序讀取xml和dll等文件具有很大的靈活性。

                          3.3 運行項目主程序

                          在classes目錄下運行主程序要使用完整的包名。主程序名,主程序不需要加擴展名,命令如下:

                          4 移植到Linux平臺

                          Linux編譯、運行Java項目和Windows大同小異,需要注意以下差別。

                          1)分號和冒號的差別:Windows平臺的編譯命令用分號分隔多個目錄,而Linux平臺使用冒號分隔。

                          2)正斜杠和反斜杠的差別:Windows平臺編譯命令使用正反斜杠均可,而Linux平臺使用正斜杠。

                          3)版本的差別:檢查程序引用的各個jar包是否有Linux版本,如果有的話及時更換。

                          4)大小寫的差別:Windows命令中的字符不區分大小寫,Linux命令則對大小寫敏感。

                          5)動態鏈接庫文件差別:Windows的動態鏈接庫文件是dll,Linux平臺下是so或jar.

                          以com.prj01.Bll包為例,Linux平臺的編譯命令如下:

                          Linux平臺運行主程序如下:

                          5 其他問題

                          5.1 項目引用Eclipse插件問題

                          在Windows的Eclipse環境下開發Java項目,可能會使用maven或者drools等插件,以drools 6.3規則引擎插件為例,相關的jar包括兩處:

                          1)droolsjbpm-tools-distribution-6.3.0.Final\binaries\org.drools.updatesite\plugins目錄下的所有jar包;

                          2)drools-distribution-6.3.0.Final\binaries目錄下的所有jar包。

                          其中plugins目錄下的jar提供Eclipse集成環境下使用,命令行模式并不需要,只有binaries目錄下的jar才是必須的,可以將這些jar拷貝到某目錄下,無論是Windows還是Linux平臺,使用參數-DJava.ext.dirs指定目錄位置編譯和運行即可。

                          5.2 JDK版本一致性問題

                          不同版本的JDK包含的類庫不同,要保證Windows開發平臺和Linux部署平臺的JDK版本相同,否則可能出現錯誤,例如:Windows開發平臺安裝了JDK1.8,Linux服務器安裝了JDK1.7,那么Windows開發環境可以使用Java.util.Base64包的類庫,但是移植到Linux會出錯,這是因為JDK1.7沒有Java.util.Base64包。

                          6 結束語

                          本文以一個常見的Java項目為實例,闡述了在Windows和Linux不同平臺下命令行編譯、運行Java程序的每個步驟,解決了從Windows集成開發環境到Linux命令行模式的遷移問題,具有廣泛的適用性。

                          參考文獻
                          [1]金玉蘋。實現將java技術移植到JVM上運行的方法[J].數字技術與應用,2012(7):244.
                          [2]何興鵬,劉釗遠,陶琛嶸。Linux程序向Android平臺移植的研究[J].計算機測量與控制,2018,26(5):112-115.
                          [3]蔣躍,田田,夏永紅,等。從Windows到Linux的C程序移植研究[J].雷達與對抗,2018,38(2):62-64.
                          [4]劉洪星,謝玉山。Eclipse開發平臺及其應用[J].武漢理工大學學報:信息與管理工程版,2005,27(2):89-92.
                          [5]沈學銀,劉中奇。Linux系統移植的分析[J].信息系統工程,2017(7):159-160.
                          [6]孔美云,錢成特,劉加海。Linux程序在Windows上的移植及運行穩定性分析[J].浙江大學學報:理學版,2012,39(3):289-292.

                          附錄(略)

                        (如您需要查看本篇畢業設計全文,請您聯系客服索。

                        相關內容
                        相關標簽:Java畢業設計
                        好優論文定制中心主要為您提供代做畢業設計及各專業畢業論文寫作輔導服務。 網站地圖
                        所有論文、資料均源于網上的共享資源以及一些期刊雜志,所有論文僅免費供網友間相互學習交流之用,請特別注意勿做其他非法用途。
                        如有侵犯您的版權或其他有損您利益的行為,請聯系指出,論文定制中心會立即進行改正或刪除有關內容!

                        將微信二維碼保存到相冊

                        打開微信掃一掃從相冊識別

                        1.點擊下面按鈕復制QQ號

                        3008637063

                        2.打開QQ→添加好友/群

                        粘貼QQ號,加我為好友

                        免费看男阳茎进女阳道视频