compilerjava
❶ 可以用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命令后面的 文件名没有后缀