㈠ jvm如何在運行時動態把java文本編譯成class,然後載入到jvm
為了在Java程序運行時動態編譯Java源代碼並生成Class文件,避免將編譯產物存到文件中,可以採用特殊的方法,例如自定義實現JavaFileManager和JavaFileObject。這類操作較為復雜,但提供了一種靈活的解決方案。
實現策略可以分為兩步:首先在運行時編譯Java源代碼,獲取編譯後的位元組碼;其次,使用自定義類載入器在運行時定義這些類。通過這種方式,無需文件操作,直接在內存中完成編譯與載入過程。
在使用編譯器API進行動態編譯時,可以遵循上述步驟。涉及的關鍵類JavaFileManager和JavaFileObject需要自定義實現,以滿足特定的文件管理需求。
然而,在嘗試使用Java11環境下運行上述代碼時,可能會遇到編譯失敗的問題,而Java8環境下則能正常運行。具體原因尚未查明,可能涉及Java版本的兼容性或API實現細節的變動。
㈡ 簡述Java程序的開發過程
Java程序開發步驟是什麼?具體操作步驟如下:
第一步:安裝JDK。
要下載Oracle公司的JDK可以網路「JDK」進入Oracle公司的JDK下載頁面,選擇自己電腦系統的對應版本即可。
第二步:配置Windows上JDK的變數環境。
JAVA_HOME
先設置這個系統變數名稱,變數值為JDK在電腦上的安裝路徑:C:ProgramFilesJavajdk1.8.0_20。創建好後則可以利用%JAVA_HOME%作為JDK安裝目錄的統一引用路徑。
Path
PATH屬性已存在,可直接編輯,在原來變數後追加:;%JAVA_HOME%in;%JAVA_HOME%jrein。
CLASSPATH
設置系統變數名為:CLASSPATH?變數值為:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar。
注意變數值字元串前面有一個"."表示當前目錄,設置CLASSPATH?的目的,在於告訴Java執行環境,在哪些目錄下可以找到所要執行的Java程序所需要的類或者包。
第三步:下載安裝Eclipse(已上傳附件,電腦打開可下載)?。
Eclipse為Java應用程序及Android開發的IDE(集成開發環境)。Eclipse不需要安裝,下載後把解壓包解壓後,剪切eclipse文件夾到你想安裝的地方,打開時設置工作目錄即可。
第四步:下載安裝AndroidSDK。
配置了JDK變數環境,安裝好了Eclipse,這個時候如果只是開發普通的JAVA應用程序,那麼Java的開發環境已經准備好了。要通過Eclipse來開發Android應用程序,那麼需要下載AndroidSDK(SoftwareDevelopmentKit)和在Eclipse安裝ADT插件,這個插件能讓Eclipse和AndroidSDK關聯起來。
第五步:為Eclipse安裝ADT插件。
前面已經配置好了java的開發環境,安裝了開發Android的IDE,下載安裝了AndroidSDK,但是Eclipse還沒有和AndroidSDK進行關聯,也就是它們現在是互相獨立的,就好比槍和子彈分開了。為了使得Android應用的創建,運行和調試更加方便快捷,Android的開發團隊專門針對EclipseIDE定製了一個插件:AndroidDevelopmentTools(ADT)。
簡述JAVA程序的編輯編譯和運行過程第一步(編譯):創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。
如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cantfindsymbol」的錯誤。
第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。
特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法clinit都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。
(2)java類載入的過程有編譯嗎擴展閱讀:
Java整個編譯以及運行的過程相當繁瑣,本文通過一個簡單的程序來簡單的說明整個流程。
Java代碼編譯:是由Java源碼編譯器來完成;
Java位元組碼的執行:是由JVM執行引擎來完成
Java程序從源文件創建到程序運行要經過兩大步驟:
1、源文件由編譯器編譯成位元組碼(ByteCode)
2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言("semi-interpreted"language)。
簡述Java應用程序的開發流程
分為網頁和桌面的應用開發
網頁或者桌面開發流程
項目啟動1)、項目組成立(公司成員、客戶成員)
2)、制定項目預期目標
3)、制定項目計劃周期
4)、建立好項目組成員溝通機制
2、需求調研
1)、創建調研計劃、協調調研時間
2)、收集客戶資料,獲取客戶需求所有的資料都需要保留一份,資料中存疑的需要及時詢問
3)、編寫需求文檔重點描述出客戶的業務流程和性能要求。採用Word、Excel、Rose等形式。
4)、需求變更記錄
5)、確定開發環境和運行環境
6)、擴展性要求
7)、與舊系統的接駁要求。
8)、估算出項目工作量本階段需要一套需求管理系統來進行需求的管理。本階段的需求文檔也是用戶測試的依據。
3、系統設計/詳細設計一個系統可以分為基礎平台和應用模塊兩部分。
1)、選擇基礎平台,無論是採用第三方平台還是自行開發平台,都需要深入了解,查看是否符合要求。
2)、應用模塊設計(針對業務流程)
3)、中間件的採用或自行開發,需要深入了解。
4)、用戶界面的設計如果用戶界面設計完畢並確認,即可初步寫出用戶使用手冊、管理員使用手冊。
5)、變更記錄本階段的系統設計是集成測試的依據。
4、程序開發創建開發任務計劃表、開發計劃日程表
1)、優先編寫測試用例
2)、按照編碼規范編寫代碼
3)、按照文檔注釋規范注釋以上形成開發文檔。本階段需要一套版本管理系統。本階段的測試用例也是單元測試的依據。如果能做到,最好每日構建。
5、測試本階段需要一套Bug管理系統,形成需求、設計、開發、測試互動。
1)、編寫測試計劃和測試方案
2)、功能測試單元測試、集成測試
3)、性能測試集成測試、壓力測試如果能做到,最好能進行自動化測試。如果能做到,做分析統計工作。最後形成測試報告。
6、試用、培訓、維護本階段需要解決:
1)、解決異地修改和公司修改的同步問題。
2)、用戶測試中的Bug修改問題,按照級別分為a)、程序Bugb)、設計變更c)、需求變更盡量按照a
b
c的順序來進行修改,盡量避免b、c級的修改。最後形成安裝手冊、維護記錄。
開發JAVA應用程序有哪些步驟?需要以下步驟:
定義問題:主要是指「想開發什麼樣的程序」、「這個程序用來解決什麼問題」。滿足目標客戶的要求是最重要的。
2.是否具有可行性:要對這個程序是否具有實用性、利益性、以及對技術和法律方面的要求,都進行考慮。
3.需求分析。弄清用戶對軟體系統的全部需求,編寫需求規格說明書和初步的用戶手冊,提交評審。
4.開發階段:設計、實現、測試,是開發時最為重要的三個步驟。這三個步驟需要把程序員自己的理解及想法,和客戶的需求都要得到體現。
5.對程序的維護:維護相當於售後服務,這個非常重要。因為程序在運營時,可能遇到各種各樣的突發事件,面對這些突發情況,必須要進行緊急的處理。維護包括四個方面"改正性維護、適應性維護、完善性維護、預防性維護"。
Java,是由SunMicrosystems公司於1995年5月推出的Java程序設計語言和Java平台的總稱。用Java實現的HotJava瀏覽器(支持Javaapplet)顯示了Java的魅力:跨平台、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現均支持Javaapplet。
ava分為三個體系JavaSE(Java2PlatformStandardEdition,java平台標准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企業版),JavaME(Java2PlatformMicroEdition,java平台微型版)。