我正在尝试为用户提供在我的程序中编写一行代码的选项。 他们的输入保存为String,我需要将该字符串转换为一行 eclipse IDE中的代码。例如:
String a = "System.out.println("String code test.");"
现在我需要这个String来编译成程序并打印出文本。 考虑到用户输入代码行时,他们是否可以这样做 该程序已编译,因此无法插入新的代码行?
我知道这个问题有点令人困惑,但如果有人能理解这篇文章或者有 类似的问题,我很乐意听到反馈。
编辑: 我已经意识到我可以使用BufferedWriter写入.java文件,然后在写入后调用该类。你能用BufferedWriter写入.java文件吗?
答案 0 :(得分: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/
答案 1 :(得分:1)
您可以使用BeanSHell或Compiler API