2

我试图让用户选择在我的程序中编写一行代码。他们的输入保存为字符串,我需要将该字符串转换为 Eclipse IDE 中的一行代码。例如:

String a = "System.out.println("String code test.");"

现在我需要这个字符串来编译到程序中并打印出文本。考虑到用户输入程序已经编译的代码行因此无法插入新的代码行时,他们是否可以这样做?

我知道这个问题有点令人困惑,但如果有人能理解这篇文章或有类似的问题,我会很高兴听到反馈。

编辑:我意识到我可以使用 BufferedWriter 写入 .java 文件,然后在写入后调用该类。您可以使用 BufferedWriter 写入 .java 文件吗?

4

2 回答 2

2

可以在运行时用 Java 编译一个类。这意味着您需要将代码行放入单独的 java 类文件并编译它。你可以在这里找到解释:

http://java-bytes.blogspot.de/2012/03/compile-java-files-at-runtime.html

这是我在java中找到的另一篇关于动态代码的文章:

http://extremejava.tpk.com.br/2008/11/06/dynamic-code-in-java-aka-eval-in-java/

于 2013-07-07T18:01:41.730 回答
1

You can use BeanSHell or Compiler API

于 2013-07-07T17:58:11.960 回答