I’m looking to write a Java program which will download a Java source file in text format off the web, compile it, load it, and use it as part of the running program. I’ve heard this is possible, but don’t know how to write the code to make it happen. A fully functioning example or tutorial would be great, if you could point me in the direction of documentation such as this.
Once I learn how it’s done, I plan to use this knowledge to build an Android Application which can customize itself with code from the web.
A desktop program could use a shell script to download, compile and run a Java program. Android does not have a compiler, and adding one is non-trivial. The easiest way would be to also make a server program. The Android program would then tell the server program to download and compile the Java source code, and then send the result to the Android program, which would then load it using its ClassLoader.
One caveat is that the JDK compiler produces bytecode for the standard Java Virtual Machine, whereas Android’s JVM is uses the Dalvik VM, so when you compile the Java class, you can’t just use the JDK; you have to use the Android SDK to produce compatible bytecode that the Android ClassLoader can use.