❶ 可以用javaCompiler編譯整個文件夾中的所有Java文件嗎

使用javax.tools.JavaCompiler
Files[] files1 = ... ; // input for first compilation task

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

Iterable<? extends JavaFileObject> compilationUnits1 =
fileManager.getJavaFileObjectsFromFiles(Arrays.asList(files1));
compiler.getTask(null, fileManager, null, null, null, compilationUnits1).call();

fileManager.close();

❷ java compiler 到底做了什麼事情

java compiler 至少做了 1.分析 java 源文件 2.搜索源文件路徑 3.搜索類文件路徑 4.載入依賴的類 5.把結果內寫入 .class 文件
其中 javac 主要的容作用就是把 java 源文件編譯為 class 文件,class 文件中主要有三部分,一是 class 常量池,二是 java 類的各種屬性結構,三是 method info 結構中的code[] 中保存的位元組碼指令序列,這三部分中,指令序列主要對應了 java 源文件中的方法中的語句;各種屬性結構,主要對應了類中各種標識符的簽名標簽、屬性修飾等,比如 欄位、方法、介面、類 的各種修飾符,還有 method 簽名的結構,比如 返回值、參數列表中的參數類型;常量池主要就是保存類的定義中涉及到的常量數據,比如 int long float double utf-8,其中所有涉及到的標識符、字元串最終就保存為 utf-8 形式。jvm 在執行這個 class 文件中的函數的時候,很重要的工作就是解析這些符號引用。

❸ java編譯器和JVM有什麼區別

java編譯器
Java語言寫的源程序通過Java編譯器,編譯成與平台無關的『位元組碼程序』(.class文件,也就是0,1二進製程序),然後在OS之上的Java解釋器中解釋執行。 也相當與 註:JVM(java虛擬機)包括解釋器,不同的JDK虛擬機是相同的,解釋器不同。
JVM-java虛擬機
.JVM:是java的核心和基礎,在java編譯器和os平台之間的虛擬處理器。它是一種利用軟體方法實現的抽象的計算機基於下層的操作系統和硬體平台,可以在上面執行java的位元組碼程序。 java編譯器只要面向JVM,生成JVM能理解的代碼或位元組碼文件。Java源文件經編譯成位元組碼程序,通過JVM將每一條指令翻譯成不同平台機器碼,通過特定平台運行。 JVM執行程序的過程: I.載入。class文件 II.管理並分配內存 III.執行垃圾收集 JRE(java運行時環境)由JVM構造的java程序的運行環境 編譯時 運行時

❹ java編譯器默認所有的java程序導入了JDK的哪個

編譯器是默認導入java.lang包,比如一些常用的、System、Thread、所有基本數據類型的包裝類等等,都是java.lang包下的類。但注意,java.lang下的包需要自己導入。比如java.lang下還有註解、反射、引用等包。

軟體包 java.lang的描述提供利用 ava編程語言進行程序設計的基礎類,最重要的類是 Object(它是類層次結構的根)和 Class(它的實例表示正在運行的應用程序中的類)。

把基本類型的值當成一個對象來表示通常很有必要。包裝器類 Boolean、Character、Integer、Long、Float 和 Double 就是用於這個目的。

(4)compilerjava擴展閱讀:

JAVA編譯器(javac.exe)的作用是將java源程序編譯成中間代碼位元組碼文件,是最基本的開發工具。

編譯時首先讀入java源程序(即在MS-DOS命令行下鍵入javac HelloWorld.java等文件名參數和其他選項參數),然後進行語法檢查,如果出現問題就終止編譯。語法檢查通過後,生成中間代碼即位元組碼,位元組碼文件名和源文件名相同,擴展名為.class。

Java以跨平台、面向對象、多線程、兼具編譯型語言和解釋型語言、穩定性好、安全性強的特點,以及與Internet的完美結合而取得成功。

❺ java 有哪幾種編譯器

主要是原來 sun (現 oracle)的 JDK

還有就是 GCC 中的 gcj,eclipse 的 ECJ

❻ JavaCompiler在android能用嗎

應該不行的,有專門的反編譯的Android工具的

❼ java 最好用的編譯器是哪個

java編譯器沒啥差別. 一般都是用oracle的jdk裡面的編譯器. 不過我都是用IBM的jdk,的編譯器. 功能上都不會有值得說的差別.

❽ java編譯器的作用是什麼

java編譯器的作用就是「編譯」,即將java源代碼編譯成中間代碼位元組碼文件。內

編譯時,編譯器(容java.exe)首先讀入 java 源代碼,然後進行語法檢查,如果出現問題就終止編譯。語法檢查通過後,生成中間代碼即位元組碼。

位元組碼文件是一種和任何具體機器環境及操作系統環境無關的中間代碼,它是一種二進制文件,是Java源文件由Java編譯器編譯後生成的目標代碼文件。

編譯器編譯生成與平台無關的位元組碼文件後,提供給 JVM (Java虛擬機)執行。

❾ java編譯器和java虛擬機的關系

java的編譯抄器,或者說jdk,是用來將源碼編譯成class位元組碼的,是java的開發環境;虛擬機就是裝有jre的可以運行class位元組碼的東東,可以是手機、電腦、和其他,只要能安裝上java的運行環境jre,就能在其上面運行class,這就構成了一個jvm,java虛擬機,是java的運行環境!!

另外,兩者分開的,但是jdk上自帶有jre,因為要開發java的話是必須有jdk和jre的;如果純粹只要能運行java程序的話,就只要安裝jre就好了!!

jdk:Java Development Kit
jre:Java Runtime Environment
jvm:Java Virtual Machine

❿ java編譯器怎麼使用

運行-cmd
然後進到你的源代碼所存的目錄下用下面的命令:
javac 文件名 進行編譯,
生成版.class文件
讓後用java 文件名就可權以運行,
記住,javac 後的文件名要有.java的後綴, java命令後面的 文件名沒有後綴