这是我想要实现的目标:
我正在构建一个需要插件感知的 Android 应用程序。我需要做的是从 Web 服务器下载 .java 文件,然后在运行时在我的应用程序中编译它们,然后将其加载到类路径中。我想使用 Java 是因为它易于使用,因为我可以像使用我的库存对象一样使用插件对象。
我见过 javax.tools 的编译方式,但在 DalvikVM 上不可用。什么是最好的替代品(以类似的方式工作)?
编辑:
我现在正在使用 .bsh-script。这在 JVM 上就像一个魅力,应该在 Android 设备上工作(我将在接下来测试):
package de.hotware.beanshell.test;
import bsh.EvalError;
import bsh.Interpreter;
public class BeanShellTest {
public static interface InterfaceTest {
public void sayHello();
}
public static void main(String[] args) {
try {
Interpreter interpreter = new Interpreter();
InterfaceTest res = (InterfaceTest) interpreter.eval("import de.hotware.beanshell.test.BeanShellTest.InterfaceTest;" +
"new InterfaceTest() {" +
"public void sayHello() { System.out.println(\"hello\");}" +
"}");
res.sayHello();
} catch(EvalError e) {
e.printStackTrace();
}
}
public void test() {
}
}