Создание игровой площадки java-кода в приложении для Android от Janino - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь создать приложение для изучения Java на Android. Он должен иметь кодовую площадку для пользователей; который может запускать простые коды Java. Я сохраняю код пользователя в коде Java, и я пытаюсь его запустить. Я использую JANINO, но проблема в том, что я не могу загрузить внешний класс, включая код пользователя. Вот мой код;

String UsersCodeInput;
public void Run() throws FileNotFoundException, IOException
{

    File sourcepath = new File(Environment.getExternalStorageDirectory()+"/MainFolder");
    File JavaFile = new File(sourcepath.getPath()+"A.java");
    FileOutputStream fos = new FileOutputStream(JavaFile);
    fos.write(UsersCodeInput.getBytes());
    fos.close();
    // now Users Code is Saved.
    //trying to run it by means of janino :

    ClassLoader cl = new JavaSourceClassLoader(
        this.getClass().getClassLoader(),  // parentClassLoader
        new File[] {sourcepath}, //our sourceFolder
        "UTF-8" //Encodeing                    
    );

    try
    {
        // problem is here. next line is not working well; throws classNotFound.
        Object o = cl.loadClass(".A").newInstance();
        //the class implements runnable.
        ((Runnable) o).run();
    }
    catch (ClassNotFoundException e)
    {Toast.makeText(this,e.getCause().toString(),Toast.LENGTH_SHORT).show();}
    catch (InstantiationException e)
    {Toast.makeText(this,e.getCause().toString(),Toast.LENGTH_SHORT).show();}
    catch (IllegalAccessException e)
    {Toast.makeText(this,e.getCause().toString(),Toast.LENGTH_SHORT).show();}

}

А вот и учебник JANINO; Прочитайте часть "Компилятор исходного кода" http://janino -compiler.github.io / Janino /

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...