日期:2014-05-20  浏览次数:20672 次

请问,能否把一个包含java代码字符串转变成一个类,用java程序
比如说程序里定义了String code="class CLSA{int a,b;}",然后后面某处就能调用这个string对象所定义的这个类CLSA clsa = new CLAS(); clsa.a = 0;之类的。
如此能用java实现么?

------解决方案--------------------
用PrintStream把code写到文件中并保存为.java文件,然好调用javac编译system.exe(),再有class.forName()反转得到实例
------解决方案--------------------
我说下我思路:

1.将这些字符串写到一个.java文件中
2.用Runtime执行javac 编译这个.java文件
3.Class.forName()反射生成Class对象,然后调用newInstance()获取实例

我没测试过,不知道可不可以。有什么问题请大家多指点

------解决方案--------------------
还有

用javassist,asm这类工具

用java.lang.Compiler

模拟eclipse的编译方式,调用一个方法,具体类名忘记了,可以找找
------解决方案--------------------
用javacompiler