- 浏览: 1357085 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
现在我们可以用JDK6 的Compiler API(JSR 199)去动态编译Java源文件,Compiler API结合反射功能就可以实现动态的产生Java代码并编译执行这些代码,有点动态语言的特征。这个特性对于某些需要用到动态编译的应用程序相当有用, 比如JSP Web Server,当我们手动修改JSP后,是不希望需要重启Web Server才可以看到效果的,这时候我们就可以用Compiler API来实现动态编译JSP文件,当然,现在的JSP Web Server也是支持JSP热部署的,现在的JSP Web Server通过在运行期间通过Runtime.exec或ProcessBuilder来调用javac来编译代码,这种方式需要我们产生另一个进程去做编译工作,不够优雅而且容易使代码依赖与特定的操作系统;Compiler API通过一套易用的标准的API提供了更加丰富的方式去做动态编译,而且是跨平台的。 下面代码演示了Compiler API的使用:
public class CompilerAPITester { private static String JAVA_SOURCE_FILE = "DynamicObject.java"; private static String JAVA_CLASS_FILE = "DynamicObject.class"; private static String JAVA_CLASS_NAME = "DynamicObject"; public static void main(String[] args) { JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); generateJavaClass(); try { //将产生的类文件拷贝到程序的ClassPath下面,下面这一行代码是特定于Windows+IntelliJ IDEA 6.0项目,不具有移植性 Runtime.getRuntime().exec("cmd /c copy "+JAVA_CLASS_FILE+" classes\\production\\JDK6Features"); Iterable<? extends JavaFileObject> sourcefiles = fileManager.getJavaFileObjects(JAVA_SOURCE_FILE); compiler.getTask(null, fileManager, null, null, null, sourcefiles).call(); fileManager.close(); Class.forName(JAVA_CLASS_NAME).newInstance();//创建动态编译得到的DynamicObject类的实例 } catch (Exception ex) { ex.printStackTrace(); } } public static void generateJavaClass(){ try { FileWriter fw = new FileWriter(JAVA_SOURCE_FILE); BufferedWriter bw = new BufferedWriter(fw); bw.write("public class "+JAVA_CLASS_NAME+"{"); bw.newLine(); bw.write("public "+JAVA_CLASS_NAME+"(){System.out.println(\"In the constructor of DynamicObject\");}}"); bw.flush(); bw.close(); } catch (IOException ex) { ex.printStackTrace(); } } } |
程序运行后,会产生DynamicObject.java和DynamicObject.class两个文件,并在控制台输出:
In the constructor of DynamicObject
发表评论
-
项目中用到的数字证书的创建,签名实现
2012-07-15 20:17 2244首先 需要下载jar包 bcprov-jdk15-145.ja ... -
DecimalFormat的用法介绍
2012-02-06 14:16 2500import java.text.*; import ... -
tomcat,jdk,maven环境变量配置(备忘)
2011-12-25 10:24 1435环境变量: CATALINA_HOME D:\P ... -
java获得指定时间几天前或几天后的日期
2010-01-14 09:28 8876/** * 得到几天前的时间 * * ... -
动态读取配置文件
2009-08-04 11:30 2513import java.io.File; import ja ... -
JAVA对数字证书的常用操作
2009-07-12 18:42 1455一需要包含的包 import java.security.* ... -
签字证书例子
2009-07-12 18:31 1641import java.io.FileInputStr ... -
list,set,map,数组间的相互转换
2009-07-01 16:10 29291.list转set Set set = new HashSe ... -
动态运行Java代码
2009-07-01 14:08 1440有些情况下,我们不得不动态运行Java代码,以便提供更加灵活的 ... -
防止java反编译的一些常用方法
2009-02-12 14:33 21211.隔离Java程序 最 ... -
操作数组
2009-01-20 12:48 1273List list1 = new ArrayList() ... -
java写入文件时庄和薛字的问题
2008-12-26 10:47 1509今天碰到一个很有意思的问题,当写入文件是庄或薛的时候,就会出现 ... -
Hessian的学习笔记
2008-12-01 12:20 12541- 整个jar很小,200多K,3.1版本的,当然,我下载的 ... -
编写一个Java程序,对指定文本进行数字签名(文本随意)
2008-10-08 14:12 2883一:需要包含的包 import java.security. ... -
java的property配置文件的用法
2008-07-29 16:26 1772package configuration; ... -
统一异常处理
2008-07-16 16:47 1986package com.bjsxt.oa.manager; ... -
Java反射机制之代理模式
2008-07-02 23:12 1579代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问 ... -
java.lang.reflect.Array的应用
2008-07-02 23:11 1903java.lang.Array 类提供了动态创建和访问数组元 ... -
Java语言的反射机制
2008-07-02 23:10 1694在JAVA运行环境中,对 ... -
@Documented Annotation的使用
2008-07-02 23:09 2487@Documented Annotation的使用: @Do ...
相关推荐
JDK6的新特性之四_使用Compiler API JDK6的新特性之五_轻量级HttpServer JDK6的新特性之七_用Console开发控制台程序 JDK6的新特性之八_嵌入式数据库Derby JDK6的新特性之六_插入式注解处理API JDK6的新特性...
这个版本在Java的历史上扮演了重要角色,引入了许多新特性和改进,旨在提高开发者的生产力和应用程序的性能。 JDK 6.0 中的一些核心特性包括: 1. **增强的编译器(Java Compiler, javac)**:JDK 6.0的javac...
它引入了许多新特性、增强功能以及对现有特性的优化,旨在提高开发者的效率和提升应用程序的性能。以下是一些关键特性: 1. **泛型**:Java 6引入了泛型,允许在类、接口和方法中使用类型参数,提高了代码的类型...
### JDK1.6的九大新特性详解 #### 一、Overview JDK1.6(Java Development Kit 1.6)作为Java平台的一个重要版本,引入了许多新的特性和改进,这些变化不仅增强了Java语言本身的实用性,还提高了开发者的生产力。...
例如,早期版本可能仅支持到Java 1.6或1.7,而Java 1.8引入了诸如lambda表达式、Stream API等新特性,因此需要额外的插件或更新才能在低版本的MyEclipse中使用。 - **Eclipse与MyEclipse的区别**:Eclipse是开源的...
这份文档以中文呈现,方便中国开发者理解和使用Java 6.0的特性。 Java SE 6.0,又称为Java Development Kit (JDK) 1.6,是Java平台的核心组件,提供了开发和运行基于Java语言的应用程序所需的基础工具和服务。此...
- 同时,在“Java Compiler”选项卡中启用项目特定设置,并根据需要选择编译版本为5.0或6.0。 #### 五、注意事项 1. **环境变量设置**: - 在多版本共存的情况下,需要正确配置系统环境变量,特别是`JAVA_HOME`...
Java 6.0,作为Java平台的重要版本,引入了一系列的新特性和性能优化,为开发者提供了更强大的工具和更好的性能体验。在Laba14的源码中,我们可以深入探讨这些关键改进,了解它们如何影响实际开发和应用程序的运行...
JDK 1.7,也被称为Java 7,是Java平台的一个重要版本,它引入了许多新特性和改进,以提升开发者的工作效率和程序性能。免安装版,或绿色版,是指无需通过传统的安装过程,只需解压缩文件即可使用的软件版本,这使得...
在IT行业中,Tomcat是一款广泛使用的开源Java应用服务器,特别是对于Servlet和JSP的应用部署。当我们需要对Tomcat进行自定义编译或者扩展其功能时,了解如何获取和使用必要的jar包是至关重要的。本篇将详细介绍...
确保Eclipse使用正确的JDK版本进行编译,通过【Window】>【Preferences…】打开属性设置窗口,选择【Java】>【Compiler】面板,设置Java编译器为JDK 6.0版本。 #### 六、创建Android项目 完成上述步骤后,即可在...
- 创建一个新的Android项目: - 选择“File” > “New” > “Project”。 - 选择“Android” > “Android Project”,点击“Next”。 - 输入项目名称、包名等信息。 - 点击“Finish”。 - 设置启动配置: - ...
The directory <Java home>/demo/jfc/Font2DTest/ contains samples that demonstrate Java support for Unicode 6.0. Java SE 7 can accommodate new currencies that are identified by their ISO 4217 codes; ...
spring-hibernate-dwr做的AJAX操作CRUD实例 环境:myeclipse6.0+jdk1.6 所需lib列表,请自行加入 mysql-connector-java-3.1.7-bin.jar antlr-2.7.6rc1.jar asm-attrs.jar cglib-2.1.3.jar ...
完全由Spring接管DWR AJAX处理(不需要配置dwr.xml)等技术点 源码在/mytest/WEB-INF/src下 Winxp sp3+JDK1.6+Tomcat 6.0下运行通过 因文件长度限制,未加入相关类库,请自行加入,需要的类库有: dom.jar...