【背景】
希望实现:
在android环境中,如何去动态的,对于输入的一个java文件,
实时地去编译该java文件,(生成对应的class)
以及在android代码中,引用此编译后的java的class,实现调用其中的函数,引用其中的变量。
先去在NeatBeans中弄了个测试的java代码:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package demo_eddl_method_code; /** * * @author CLi */ public class Demo_eddl_method_code { public static int getSum(int x, int y) { int sum = 0; sum = x + y; return sum; } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int x = 1; int y = 2; int gotSum = getSum(x, y); System.out.println(gotSum); } }
希望可以在android代码中,将上述的代码,动态的编译,然后且在android代码中,可以调用到对应的函数getSum。
【折腾过程】
1.貌似从:
how to compile java code in android [duplicate]
找到的:
好像是所要的。
但是其是用的java6中的库:
javax.tools Interface JavaCompiler
此处,不知道android中是否存在和是否能够正常使用。
2.后来折腾代码,结果期间出错:
3.参考:
How can I compile and deploy a java class at runtime?
找到:
http://code.google.com/p/compilation-toolbox/
看其介绍,其也还是利用了javax.tools的。所以,估计还是不行。
不过,也去试试是否可用:
【记录】折腾Android(java)的动态编译工具:compilation-toolbox
结果也还是不行。
4.继续参考:
How can I compile and deploy a java class at runtime?
先去试试BCEL:
【记录】折腾用BECL去实现android中动态编译并调用java代码
5.再参考:
Compile to java bytecode (without using Java)
去看看:
Trove
http://teatrove.sourceforge.net/trove.html
6.
转载请注明:在路上 » 【记录】在android中编译并调用编译好的java代码