我希望在我正在开发的 Java 项目中使用 Jython。 我想知道两件事。
我可以禁止从 Python 脚本访问 Java 类吗? IE。阻止脚本执行诸如
from java.util import Date
之类的操作?我可以更改
print "Hello"
等写入的输出流,以便我可以为我的实现重定向脚本输出吗?
或者我是否必须编辑实际的 Jython 类才能禁用和更改它?
最佳答案
为了限制对特定 Java 类的访问,您可以实现自定义类加载器并将其注册到 Jython:
this.pyInterpreter.getSystemState().setClassLoader(this.userCodeClassLoader);
如果您这样做是因为安全问题(不允许在运行用户代码的服务器计算机上进行某些操作),您必须注意 Jython 还提供了不会被类加载器捕获的内置函数实现:
关于java - Jython:阻止对 java 类的访问并更改输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11842719/