Puede agregar el compilador de Java en una aplicación de Android mediante el siguiente proceso:
- Almacenamiento de archivos = getDir (“all41”, Context.MODE_PRIVATE);
- System.err.println (“copiando el android.jar de los activos al almacenamiento interno para que esté disponible para el compilador”);
BufferedInputStream bis = null;
OutputStream dexWriter = nulo;
int BUF_SIZE = 8 * 1024;tratar {
bis = new BufferedInputStream (getAssets (). open (“android.jar”));
dexWriter = new BufferedOutputStream (
nuevo FileOutputStream (storage.getAbsolutePath () + “/android.jar”));
byte [] buf = nuevo byte [BUF_SIZE];
int len;
while ((len = bis.read (buf, 0, BUF_SIZE))> 0) {
dexWriter.write (buf, 0, len);
}
dexWriter.close ();
bis.close ();
} catch (Excepción e) {
System.err.println (“Error al copiar de los activos:” + e.getMessage ());
e.printStackTrace ();
}System.err.println (“crear instancias del compilador y compilar el archivo java”);
org.eclipse.jdt.internal.compiler.batch.Main ecjMain = new org.eclipse.jdt.internal.compiler.batch.Main (nuevo PrintWriter (System.out), nuevo PrintWriter (System.err), false / * noSystemExit */, nulo);
ecjMain.compile (nueva Cadena [] {“-classpath”, storage.getAbsolutePath () + “/ android.jar”, Environment.getExternalStorageDirectory (). getAbsolutePath () + “/Test.java”});- ¿Cuál es la mejor aplicación de diario para Android con sincronización en línea?
- ¿Cuál es tu juego favorito para iPhone / Android?
- ¿Cuáles son algunas buenas aplicaciones de escritores de etiquetas NFC para Android?
- ¿Cómo y dónde puedo desarrollar una aplicación de Android de realidad aumentada fácilmente y con menos gastos con fines comerciales?
- ¿Cómo generan ingresos las aplicaciones móviles de revisión de restaurantes (por ejemplo, Zomato, Burrp, etc.), ya que no hay anuncios en estas aplicaciones?
System.err.println (“llamando a DEX y desintoxicando la clase de prueba”);
com.android.dx.command.Main.main (new String [] {“–dex”, “–output =” + storage.getAbsolutePath () + “/Test.zip”, Environment.getExternalStorageDirectory (). getAbsolutePath () + “/./Test.class”});System.err.println (“instanciando DexClassLoader, cargando clase e invocando toString ()”);
DexClassLoader cl = new DexClassLoader (storage.getAbsolutePath () + “/Test.zip”, storage.getAbsolutePath (), nulo, getClassLoader ());tratar {
Clase libProviderClazz = cl.loadClass (“Prueba”);
Instancia de objeto = libProviderClazz.newInstance ();
System.err.println (instance.toString ());
} catch (Excepción e) {
System.err.println (“Error al instanciar objeto:” + e.getMessage ());
e.printStackTrace ();
}
Fuente: Implementar un compilador de Java en la aplicación de Android