相关疑难解决方法(0)

使用javax.tools在运行时编译java源代码?

所以,java有一个内置的库,专门用于将java源代码编译成.class文件,它就在javax.tools.所以,我想知道你究竟是如何让它发挥作用的.我已经阅读了javadoc,并在那里给出了一些示例,但是当我使用这些示例时,我会遇到错误.

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Run Code Online (Sandbox Code Playgroud)

这是oracle提供的示例,以便获取StandardJavaFileManager可以从中执行更多操作的类的实例.但是,我在该代码的第一行遇到了一些问题.当我尝试这样做时ToolProvider.getSystemJavaCompiler();,它总是返回null.在该方法的javadoc中,它表示"返回此平台提供的编译器,如果没有提供编译器,则返回null." 但他们从未表现出任何其他方式获得一个实例JavaCompiler.我已经尝试了许多其他方法,例如使用a ServiceLoader来找到我能够提供的任何参考,但不会占上风.我怎么能让这个工作?

java compilation

4
推荐指数
1
解决办法
450
查看次数

Java 中是否有与 Python 的 exec() 函数等效的函数?

在Python中,您可以使用它exec()来执行一段代码。

有没有什么方法可以在 Java 中执行此操作,以便我可以从字符串调用函数,而且还可以执行其他操作,例如获取一些用户输入并将其作为 Java 代码运行。

注意:这与 Java 中是否有 eval() 函数不同?; 那只是eval()我想要的exec()

java eval

4
推荐指数
1
解决办法
2096
查看次数

标签 统计

java ×2

compilation ×1

eval ×1