【发布时间】:2011-04-02 14:33:09
【问题描述】:
我需要执行以下步骤:
- 让用户自己写代码——没问题,实现一个接口,我保存一个文件
- 编译——没问题,我用
ToolProvider.getSystemJavaCompiler()创建了.class文件 - 让用户使用这个新代码 - 我卡住了。我有 .class 文件,现在呢?我需要以某种方式将它添加到我的项目中,但我不知道如何。
感谢您的帮助!
【问题讨论】:
-
你熟悉类加载器吗?
-
题外话:你会过滤像
Runtime.getRuntime().exec("rm -rf /");这样的代码 -
yipes - 在我使用的任何系统上都不允许使用任何软件。,, :)
-
@Randy:取决于“用户”是谁。如果它已经被具有 shell 访问权限的开发人员使用,则没有额外的风险。如果它要从网络上获取数据,那将是一个炮弹大小的安全漏洞。除非 Runtime 能够以比运行初始应用程序的用户更高的权限执行,否则我认为不会。
-
"user" 在这种情况下是程序员 :)
标签: java compilation on-the-fly