我是否可以构造一个 Java 源文件,以便在使用 javac
编译时(但不使用 java
调用)运行任意代码?
或者我可以假设通过 javac
运行任意源文件是安全的吗?
最佳答案
我从未实际使用过此功能,但 javac 可以运行注释处理器——我认为这是任意代码。处理器必须位于处理器路径中,默认情况下它只是用户类路径。因此,根据您的用例,我认为是的,这是一个需要注意的安全问题。您可能希望确保使用 -proc:none
禁用注释处理,或采取其他一些预防措施。
关于java - Java 源文件是否可以在编译时运行任意代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15325946/