- 浏览: 254705 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
public static void compile(String name)
throws CompileException
{
ByteArrayOutputStream outpouter = new ByteArrayOutputStream();
boolean ret = false;
try {
String javaFile = Constants.JAVA_PATH + name + ".java";
sun.tools.javac.Main javac = new sun.tools.javac.Main(outpouter, "javac");
ret = javac.compile(new String[] { "-d", Constants.JAVA_PATH, "-classpath", getPreclasspath(), javaFile });
}
catch (Exception e)
{
throw new CompileException(e, e.getLocalizedMessage());
}
throws CompileException
{
ByteArrayOutputStream outpouter = new ByteArrayOutputStream();
boolean ret = false;
try {
String javaFile = Constants.JAVA_PATH + name + ".java";
sun.tools.javac.Main javac = new sun.tools.javac.Main(outpouter, "javac");
ret = javac.compile(new String[] { "-d", Constants.JAVA_PATH, "-classpath", getPreclasspath(), javaFile });
}
catch (Exception e)
{
throw new CompileException(e, e.getLocalizedMessage());
}
发表评论
-
servletcontext 的获取
2013-05-12 20:10 480容器在初始化servlet时,会为其注入servletconf ... -
取得下一个sequence。 getNextInterval
2013-03-15 11:47 9441. 初始sequence值放置于数据库。 2. 启动时产 ... -
java 脚本,编译与注解处理
2013-02-05 10:04 8581.java中支持脚本调用 通过脚本引擎来执行。 Obj ... -
java 安全管理器
2013-02-04 11:24 8351.在java语言实现中,扩展和系统加载器都是java实现的, ... -
RMI 底层实现
2013-01-28 16:43 9201. server端代码: Registry regist ... -
Java获取当前路径
2013-01-22 18:12 899无论是抽象路径名还是路径名字符串,都可以是绝对 路径名或相对 ... -
java1.5 新特性
2013-01-10 16:50 768"JDK1.5"的一个重要主题就是通过新增 ... -
import static静态导入
2013-01-10 12:12 851import static静态导入是JDK1.5中的新特性。一 ... -
类加载器加载的类的访问权限问题
2013-01-04 15:34 10591.父加载器加载的类不能访问子加载器加载的类。 (向下可见性) ... -
java 内部类总结
2012-12-28 12:31 748主要从分类和使用情境来看 1. 普通内部类。 位置: 在 ... -
java构造函数和静态变量的执行顺序
2012-12-18 11:18 1042java初始化顺序 1在new B一个实例时首先要进行类的装载 ... -
Java多线程之Condition接口的实现
2012-11-26 17:03 952在实际中一个lock可产生多个Condition对象。个人认为 ... -
java线程同步原理(lock,synchronized)
2012-11-26 14:26 1002一。 java线程同步原理 java会为每个object对象分 ... -
总结下java中abstract,interface,final,static,加深理解
2012-11-16 17:16 894一,抽象类:abstract 1,只要有一个或一个 ... -
为什么interface的变量必须是public final static的
2012-11-16 17:15 1021public 感觉是因为Java对接口的要求是所有类都可以实现 ... -
stack在排序的应用
2012-10-22 17:04 726对于list, 可用Collections的静态方法 Coll ... -
随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
2012-09-25 14:59 1579RandomAccessFile RandomAccessF ... -
Java 服务器端支持断点续传的源代码
2012-09-25 14:44 4043Java 服务器端支持断点续传的源代码【支持快车、迅雷】(仅支 ... -
new File(String parent,String child)
2012-08-22 23:00 1176//user_dir:E:\workspace\javates ... -
System.getProperty
2012-08-22 22:07 916System.getProperty(String name) ...
相关推荐
`com.sun.tools.javac.main.Main`类在这个过程中扮演了关键角色,它负责编译任务的整体调度。类型检查由`com.sun.tools.javac.code.Type`和`com.sun.tools.javac.code.Symbol`类协同完成,确保程序符合Java语言规范...
3. **类型检查**:在 `com.sun.tools.javac.main.JavaCompiler` 类中,编译器会进行类型检查,确保所有的表达式和语句在类型上是正确的。这包括变量声明、方法调用、赋值操作等。 4. **类与接口解析**:编译器需要...
这个过程中涉及的类主要包括 `com.sun.tools.javac.main.Main`,它是 javac 的主入口点,以及 `com.sun.tools.javac.parser.JavacParser`,负责解析源代码。 在阅读和调试 javac 源码时,有几点需要注意: 1. **...
javac --add-modules=javafx.base,javafx.graphics --module-source-path src/main/java -d build/classes src/main/java/YourFile.java ``` 3. **避免直接依赖**: 尽可能避免直接依赖`tools.jar`,因为它不是跨...
javac 命令行支持多种选项,如 `-g` 用于添加调试信息,`-classpath` 定义类路径,`-source` 指定 Java 版本等,这些选项通过 `com.sun.tools.javac.main.Main` 类的 `compile` 方法处理。 深入研究 javac 源码...
源代码中包含多个模块,如`com.sun.tools.javac.main`,`com.sun.tools.javac.parser`,`com.sun.tools.javac.code`等,分别对应不同的编译阶段。 2. **词法分析**: 这是编译的第一步,由`...
- `com.sun.tools.javac.Main`:这是`javac`命令的主入口点,负责启动编译过程。 - `com.sun.tools.javac.parser`:包含词法和语法分析的相关实现。 - `com.sun.tools.javac.tree`:存储抽象语法树的相关类。 - `...
例如,如果你想要在代码中调用Java编译器进行动态编译,你可以导入`com.sun.tools.javac.Main`类并调用其`compile`方法。这对于自动化构建过程或者在运行时编译源代码非常有用。 接下来,我们来看"ant.jar"。Apache...
最后,通过`com.sun.tools.javac.Main.compile()`方法编译源代码,如果成功,使用`Class.forName()`加载生成的类,然后实例化并调用其方法。 至于扩展部分,可能的方向包括优化数据读取和导入性能,例如通过多线程...
这些类主要位于`sun.tools.java.*`和`sun.tools.javac.*`包下,例如javac编译器就依赖于tools.jar。当我们执行`javac`命令编译Java源代码时,实际上是通过Java虚拟机执行了`java -classpath %JAVA_HOME%\lib\tools....
这个计算器全部用的是java类库提供的方法,并采用动态编译技术com.sun.tools.javac.Main。用户所有的输入都由计算器本身提供的按钮来实现,计算器本身不对用户输入是否合法进行检测,只是在进行动态编译不能通过时...
Java 1.4引入了`com.sun.tools.javac.Main`类,该类提供了静态方法`compile`用于编译Java源代码。以下是一个简单的示例: ```java import com.sun.tools.javac.Main; public class RealTimeCompiler { public ...
这些优化可能在`com.sun.tools.javac.main.Main.compile()`方法中体现。 阅读Java编译器源码有助于理解语言的底层工作原理,这对于优化代码、编写自定义编译器插件或者深入学习Java虚拟机都有极大帮助。源码提供了...
- Java编译器源码主要位于openjdk的`src/jdk.compiler/share/classes/com/sun/tools/javac`目录下,包括多个子模块,如parser(解析器)、main(主程序入口)、tree(抽象语法树)等。 - 源码中包含了处理类路径、...
当Ant在执行`javac`时,它会调用JDK的`javac`编译器,这实际上是在 `%JAVA_HOME%\lib\tools.jar` 包内的 `com.sun.tools.javac.main.Main` 类中实现的。当内存不足时,不论是Ant本身还是单独的`javac`进程,都会抛出...
当遇到错误“找不到或无法加载主类 com.sun.tools.javac.Main”时,通常是因为JDK和JRE安装在同一文件夹下,导致JRE覆盖了JDK中的某些文件(特别是`jre`目录)。解决方法如下: 1. **重新安装JRE**: - 如果希望将...
hadoop com.sun.tools.javac.Main AreaBalance.java jar cf wc.jar AreaBalance*.class hadoop jar wc.jar AreaBalance /res/mapred_assignment output/areabalance hadoop fs -cat output/areabalance/part-r-...
`javax.tools.JavaCompiler`和`com.sun.tools.javac.api.JavacTask`是进行动态编译的关键类。以下是一个简单的例子: ```java import javax.tools.*; import java.io.File; import java.util.Arrays; public class...
通过调用`com.sun.tools.javac.Main`类的静态方法,开发者可以在程序中实现编译功能,这对于自动化构建流程尤其有用。例如,可以创建一个自定义的构建工具,集成到持续集成系统中,以确保代码的质量和一致性。 其次...
编译: $ hadoop com.sun.tools.javac.Main BC.java 这将产生几个.class文件。 将它们打包到一个名为bc.jar的.jar文件中: $ jar cf bc.jar BC * .class 要运行.jar文件,请执行以下操作: $ hadoop jar bc.jar BC ...