java文件編譯工具
學習java要什麼軟體?java編程軟體哪個好?昌平北大青鳥java培訓小編為你詳細解答!
一、JDK(JavaDevelopmentKit)
JDK是整個Java的核心,包括了Java運行環境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎的類庫(rt.jar)。不論什麼Java應用伺服器實質都是內置了某個版本的JDK。因此掌握JDK是學好Java的第一步。最主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)運行效率要比SunJDK包含的JVM高出許多。而專門運行在x86平台的Jrocket在服務端運行效率也要比SunJDK好塌派鎮很多。但不管怎麼說,我們還是需要先把SunJDK掌握好。
1、JDK的下載和安裝
JDK又叫做J2SE(Java2SDKStandardEdition),可以從Sun的Java網站上下載到,#/j2se/downloads.html;,JDK當前最新的版本是J2SDK1.4.2,建議下載該版本的JDK,下載頁面在這里:http://#/j2se/1.4.2/download.html。
下載好的JDK是一個可執行安裝程序,默認安裝完畢後會在C:ProgramFilesJava目錄下安裝一套JRE(供瀏覽器來使用),在C:j2sdk1.4.2下安裝一套JDK(也包括一套JRE)。然後我們需要在環境變數PATH的最前面增加java的路徑C:j2sdk1.4.2in。這樣JDK就安裝好了。
2、JDK的命令工具
JDK的最重要命令行工具:
java:啟動JVM執行class
javac:Java編譯器
jar:Java打包工具
javadoc:Java文檔生成器
這些命令行必須要非常羨物非常熟悉,對於每個參數都要很精通才行。對於這些命令的學習,JDKDocumentation上有詳細的文檔。
二、JDKDocumentation
Documentation在JDK的下載頁面也有下載連接,建議同時下載Documentation。Documentation是最最重要的編程手冊,涵蓋了整個Java所有方面的內容的描述。可以這樣說,學習Java編程,大部分時間都是花在看這團粗個Documentation上面的。我是隨身攜帶的,寫Java代碼的時候,隨時查看,須臾不離手。
三、應用伺服器(AppServer)
AppServer是運行Java企業組件的平台,構成了應用軟體的主要運行環境。當前主流的AppServer是BEA公司的WeblogicServer和IBM公司的Websphere以及免費的Jboss,選擇其中一個進行學習就可以了,個人推薦Weblogic,因為它的體系結構更加干凈,開發和部署更加方便,是Java企業軟體開發人員首選的開發平台。下面簡要介紹幾種常用的AppServer:
1、Tomcat
Tomcat嚴格意義上並不是一個真正的AppServer,它只是一個可以支持運行Serlvet/JSP的Web容器,不過Tomcat也擴展了一些AppServer的功能,如JNDI,資料庫連接池,用戶事務處理等等。Tomcat被非常廣泛的應用在中小規模的JavaWeb應用中,因此本文做一點下載、安裝和配置Tomcat的介紹:
Tomcat是Apache組織下Jakarta項目下的一個子項目,它的主網站是:#/tomcat/;,Tomcat最新版本是Tomcat4.1.27,軟體下載的連接是:http://#/dist/jakarta/tomcat-4/binaries/;。
下載Tomcat既可以直接下載zip包,也可以下載exe安裝包(個人建議zip更干凈些),不管哪種情況,下載完畢安裝好以後(zip直接解壓縮就可以了)。需要設置兩個環境變數:
JAVA_HOME=C:j2sdk1.4.2
CATALINA_HOME=D: omcat4(你的Tomcat安裝目錄)
這樣就安裝好了,啟動Tomcat運行CATALINA_HOMEinstartup.bat,關閉Tomcat運行shutdown.bat腳本。Tomcat啟動以後,默認使用8080埠,因此可以用瀏覽器訪問http://localhost:8080來測試Tomcat是否正常啟動。
Tomcat提供了兩個Web界面的管理工具,URL分別是:
http://localhost:8080/admin/index.jsp;
http://localhost:8080/manager/html;
在啟用這兩個管理工具之前,先需要手工配置一下管理員用戶和口令。用一個文本工具打開CATALINA_HOMEconf omcat-users.xml這個文件,加入如下幾行:
這樣用戶「robbin」就具備了超級管理員許可權。重新啟動Tomcat以後,你就可以使用該用戶來登陸如上的兩個管理工具,通過Web方式進行Tomcat的配置和管理了。
2、BEAWeblogic
Weblogic可以到BEA的網站上免費注冊之後下載到最新的Weblogic8.1企業版,License可以免費使用1年時間,其實這已經完全足夠了。Weblogic的下載連接:#/index.jsp,Weblogic的在線文檔:http://#/;。
3、IBMWebshpere
Websphere同樣可以下載到免費的試用版本,到IBM的developerWorks網站可以看到Websphere試用產品的下載和相關的Websphere的資料,developerWorks中文網站的連接是:#/developerWorks/cn/wsdd/;,Websphere的下載連接:http://#/wsdd/downloads/WASsupport.html;。
4、Jboss
Jboss是免費開源的AppServer,可以免費的從Jboss網站下載:#/index.html,然而Jboss的文檔是不免費,需要花錢購買,所以為我們學習Jboss設置了一定的障礙。在Jdon上有幾篇不錯的Jboss配置文檔,可以用來參考:http://#/idea.html;
四、Java應用的運行環境
Java的應用可以簡單分為以下幾個方面:
1、Java的桌面應用
桌面應用一般僅僅需要JRE的支持就足夠了。
2、JavaWeb應用
Java的Web應用至少需要安裝JDK和一個web容器(例如Tomcat),以及一個多用戶資料庫,Web應用至少分為三層:
Browser層:瀏覽器顯示用戶頁面
Web層:運行Servlet/JSP
DB層:後端資料庫,向Java程序提供數據訪問服務
3、Java企業級應用
企業級應用比較復雜,可以擴展到n層,最簡單情況會分為4層:
Browser層:瀏覽器顯示用戶頁面
Client層:Java客戶端圖形程序(或者嵌入式設備的程序)直接和Web層或者EJB層交互
Web層:運行Servlet/JSP
EJB層:運行EJB,完成業務邏輯運算
DB層:後端資料庫,向Java程序提供數據訪問服務
4、Java嵌入式應用
Java嵌入式應用是一個方興未艾的領域,從事嵌入式開發,需要從Sun下載J2ME開發包,J2ME包含了嵌入式設備專用虛擬機KVM,和普通的JDK中包含的JVM有所不同。另外還需要到特定的嵌入式廠商那裡下載模擬器。
Ⅱ 在Myeclipse中是如何編譯java文件的
MyEclipse是自動編譯java文件的。
1、在建立類的時候,就進行編譯了
2、當修改類源碼的時候,會點擊保存這個動作,在這個時候,又會重新編譯類為.class文件
3、點擊菜單欄 Project,選擇Build Automatically 這個會也會自動編譯的
Ⅲ 如何用maven將java8寫的代碼編譯為java6平台的
在一般的Java應用開發過程中,開發人員使用Java的方式比較簡單。打開慣用的IDE,編寫Java源代碼,再利用IDE提供的功能直接運行Java 程序就可以了。這種開發模式背後的過程是:開發人員編寫的是Java源代碼文件(.java),IDE會負責調用Java的編譯器把Java源代碼編譯成平台無關的位元組代碼(byte code),以類文件的形式保存在磁碟上(.class)。Java虛擬機(JVM)會負責把Java位元組代碼載入並執行。Java通過這種方式來實現其「編寫一次,到處運行(Write once, run anywhere)」 的目標。Java類文件中包含的位元組代碼可以被不同平台上的JVM所使用。Java位元組代碼不僅可以以文件形式存在於磁碟上,也可以通過網路方式來下載,還可以只存在於內存中。JVM中的類載入器會負責從包含位元組代碼的位元組數組(byte[])中定義出Java類。在某些情況下,可能會需要動態的生成 Java位元組代碼,或是對已有的Java位元組代碼進行修改。這個時候就需要用到本文中將要介紹的相關技術。首先介紹一下如何動態編譯Java源文件。
動態編譯Java源文件
在一般情況下,開發人員都是在程序運行之前就編寫完成了全部的Java源代碼並且成功編譯。對有些應用來說,Java源代碼的內容在運行時刻才能確定。這個時候就需要動態編譯源代碼來生成Java位元組代碼,再由JVM來載入執行。典型的場景是很多演算法競賽的在線評測系統(如PKU JudgeOnline),允許用戶上傳Java代碼,由系統在後台編譯、運行並進行判定。在動態編譯Java源文件時,使用的做法是直接在程序中調用Java編譯器。
JSR 199引入了Java編譯器API。如果使用JDK 6的話,可以通過此API來動態編譯Java代碼。比如下面的代碼用來動態編譯最簡單的Hello World類。該Java類的代碼是保存在一個字元串中的。
01 public class CompilerTest {
02 public static void main(String[] args) throws Exception {
03 String source = "public class Main { public static void main(String[] args) {System.out.println(\"Hello World!\");} }";
04 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
05 StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
06 StringSourceJavaObject sourceObject = newCompilerTest.StringSourceJavaObject("Main", source);
07 Iterable< extends JavaFileObject> fileObjects = Arrays.asList(sourceObject);
08 CompilationTask task = compiler.getTask(null, fileManager, null,null, null, fileObjects);
09 boolean result = task.call();
10 if (result) {
11 System.out.println("編譯成功。");
12 }
13 }
14
15 static class StringSourceJavaObject extends SimpleJavaFileObject {
16
17 private String content = null;
18 public StringSourceJavaObject(String name, String content) ??throwsURISyntaxException {
19 super(URI.create("string:///" + name.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE);
20 this.content = content;
21 }
22
23 public CharSequence getCharContent(boolean ignoreEncodingErrors) ??throws IOException {
24 return content;
25 }
26 }
27 }
如果不能使用JDK 6提供的Java編譯器API的話,可以使用JDK中的工具類com.sun.tools.javac.Main,不過該工具類只能編譯存放在磁碟上的文件,類似於直接使用javac命令。
另外一個可用的工具是Eclipse JDT Core提供的編譯器。這是Eclipse Java開發環境使用的增量式Java編譯器,支持運行和調試有錯誤的代碼。該編譯器也可以單獨使用。Play框架在內部使用了JDT的編譯器來動態編譯Java源代碼。在開發模式下,Play框架會定期掃描項目中的Java源代碼文件,一旦發現有修改,會自動編譯 Java源代碼。因此在修改代碼之後,刷新頁面就可以看到變化。使用這些動態編譯的方式的時候,需要確保JDK中的tools.jar在應用的 CLASSPATH中。
下面介紹一個例子,是關於如何在Java裡面做四則運算,比如求出來(3+4)*7-10的值。一般的做法是分析輸入的運算表達式,自己來模擬計算過程。考慮到括弧的存在和運算符的優先順序等問題,這樣的計算過程會比較復雜,而且容易出錯。另外一種做法是可以用JSR 223引入的腳本語言支持,直接把輸入的表達式當做JavaScript或是JavaFX腳本來執行,得到結果。下面的代碼使用的做法是動態生成Java源代碼並編譯,接著載入Java類來執行並獲取結果。這種做法完全使用Java來實現。
01 private static double calculate(String expr) throws CalculationException {
02 String className = "CalculatorMain";
03 String methodName = "calculate";
04 String source = "public class " + className
05 + " { public static double " + methodName + "() { return " + expr +"; } }";
06 //省略動態編譯Java源代碼的相關代碼,參見上一節
07 boolean result = task.call();
08 if (result) {
09 ClassLoader loader = Calculator.class.getClassLoader();
10 try {
11 Class<?> clazz = loader.loadClass(className);
12 Method method = clazz.getMethod(methodName, new Class<?>[] {});
13 Object value = method.invoke(null, new Object[] {});
14 return (Double) value;
15 } catch (Exception e) {
16 throw new CalculationException("內部錯誤。");
17 }
18 } else {
19 throw new CalculationException("錯誤的表達式。");
20 }
21 }
上面的代碼給出了使用動態生成的Java位元組代碼的基本模式,即通過類載入器來載入位元組代碼,創建Java類的對象的實例,再通過Java反射API來調用對象中的方法。
Java位元組代碼增強
Java 位元組代碼增強指的是在Java位元組代碼生成之後,對其進行修改,增強其功能。這種做法相當於對應用程序的二進制文件進行修改。在很多Java框架中都可以見到這種實現方式。Java位元組代碼增強通常與Java源文件中的註解(annotation)一塊使用。註解在Java源代碼中聲明了需要增強的行為及相關的元數據,由框架在運行時刻完成對位元組代碼的增強。Java位元組代碼增強應用的場景比較多,一般都集中在減少冗餘代碼和對開發人員屏蔽底層的實現細節上。用過JavaBeans的人可能對其中那些必須添加的getter/setter方法感到很繁瑣,並且難以維護。而通過位元組代碼增強,開發人員只需要聲明Bean中的屬性即可,getter/setter方法可以通過修改位元組代碼來自動添加。用過JPA的人,在調試程序的時候,會發現實體類中被添加了一些額外的 域和方法。這些域和方法是在運行時刻由JPA的實現動態添加的。位元組代碼增強在面向方面編程(AOP)的一些實現中也有使用。
Ⅳ 如何用Editplus編譯運行Java
用Editplus編譯運行Java的方法:
1、確定安裝了JDK之後,打開EditPlus,點擊上方菜單欄處的【工具】。在彈出的菜單欄中點擊【配置自定義工具】
Ⅳ java反編譯器怎麼用
目前最好的反編譯工具,是小穎JAVA源代碼反編譯超級引摯,Google一下就有下的,很好用