JAVA 中的 python "Execfile" 的替代方案?

Alternative to the python "Execfile" in JAVA?

我想知道是否有与 execfile(从 Python )到 java 相同的命令?

我不确定我是否理解你想要实现的目标,但这里有几个选项。

如果你想在Java中执行Python个文件,按照评论中的建议,你可以使用PythonInterpreterclass,非常好用。下面是从网络上截取的一个简单例子:

import org.python.util.PythonInterpreter;
...
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("C:/path/to/file/__main__.py");

但是,如果您正在寻找类似但适用于 Java 文件的东西,恐怕就没那么容易了。
首先,Java是一个两阶段语言:

  1. Classes(在 .java 文件中实现)由编译器(即 javac 命令)编译,并且翻译成字节码(.class 文件)
  2. 字节码由JVM执行(即java命令),实际上是一个Interpreter.

此外,您实际上不能在字节码上应用 Python execFile 函数,这也是因为 classes 不是脚本,而是您可以在其中实例化和使用的对象的表示你的程序。

作为最后一个选项,如果您正在寻找一种操作字节码的方法,例如通过动态加载和分析 classes,您可以使用几个库来实现这一目的。例如 JavaAssist 就是其中之一。
这是一个如何加载 Class:

的简单示例
    // directory: path which class files were written
    // className: fully qualified name of the class you want to load.

    File f = new File(directory);
    java.net.URL[] urls = new java.net.URL[] { f.toURI().toURL() };
    ClassLoader cl = new URLClassLoader(urls, loader);
    Class cls = cl.loadClass(className);

一旦获得 Class 对象的实例,就可以对它们做很多事情:获取名称、类型、superclasses、方法、成员等信息