java - Jython:阻止对 java 类的访问并更改输出流

标签 java jython

我希望在我正在开发的 Java 项目中使用 Jython。 我想知道两件事。

  1. 我可以禁止从 Python 脚本访问 Java 类吗? IE。阻止脚本执行诸如 from java.util import Date 之类的操作?

  2. 我可以更改 print "Hello" 等写入的输出流,以便我可以为我的实现重定向脚本输出吗?

或者我是否必须编辑实际的 Jython 类才能禁用和更改它?

最佳答案

为了限制对特定 Java 类的访问,您可以实现自定义类加载器并将其注册到 Jython:

this.pyInterpreter.getSystemState().setClassLoader(this.userCodeClassLoader);

如果您这样做是因为安全问题(不允许在运行用户代码的服务器计算机上进行某些操作),您必须注意 Jython 还提供了不会被类加载器捕获的内置函数实现:

Built-in Python function implementations

关于java - Jython:阻止对 java 类的访问并更改输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11842719/

相关文章:

python - Jython subprocess.call() 到 Python

java - logger4j IsTracingEnabled

java - 如何随机播放 ArrayList 的特定范围?

java - 为什么java增量运算符(在较大表达式的一部分)的工作方式不同?

python - 如何在 Jython 项目中使用 Maven 导入 Python 模块?

java - 只需导入一次即可通过 Java 运行 Python 脚本

java - Spring Security 3.1.3 请求查询字符串被剥离

java - 为什么Java中可以将父类(super class)初始化为子类?

java - 在 Jython 中设置导入模块路径 - 奇怪的行为

java - 如何从 Jython 脚本调用 C 函数?