10

ユーザーから Java コードの行を取得し、Android で実行したいと考えています。例えば:

String strExecutable = " int var; var = 4 + 3"
Object obj = aLibrary.eval(strExecutable);

これは Java スクリプトではなく、Java コードを実行したいと考えています。

出来ますか?はいの場合、どのように?

私はこのようなリンクを研究しました。しかし、それらは Android Dalvik ではなく JVM に関する質問です。

4

2 に答える 2

2

次のようなことを試すことができます:

// Code Execute, Khaled A Khunaifer, 27 March 2013
class CodeExcute
{
    public static void execute (String[] commands, String[] headers)
    {
        // build commands into new java file
        try
        {
            FileWriter fstream = new FileWriter("Example.java");
            BufferedWriter out = new BufferedWriter(fstream);

            out.write("");

            for (String header : headers) out.append(header);

            out.append("class Example { public static void main(String args[]) { ");

            for (String cmd : commands) out.append(cmd);

            out.append(" } }");

            out.close();
        }
        catch (Exception e)
        {
            System.err.println("Error: " + e.getMessage());
        }

        // set path, compile, & run
        try
        {
            Process tr = Runtime.getRuntime().exec(
               new String[]{ "java -cp .",
                  "javac Example.java",
                  "java Example" } );
        }
        catch (Exception e)
        {
            System.err.println("Error: " + e.getMessage());
        }

    }
}
于 2013-03-27T20:18:00.353 に答える