相关疑难解决方法(0)

jython-standalone-2.7.0.jar和jython-2.7.0.jar之间有什么区别?

我写了一个Java示例,代码是:

import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.List;

class JythonExample {

  public static void main(String args[]) throws ScriptException {
    listEngines();

    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine pyEngine = mgr.getEngineByName("python");

    try {
      pyEngine.eval("print \"Python - Hello, world!\"");
    } catch (Exception ex) {
      ex.printStackTrace();
    }

    final PythonInterpreter interpreter = new PythonInterpreter();
    interpreter.exec("print \"Python - Hello, world!\"");

    PyObject result = interpreter.eval("2 + 3");
    System.out.println(result.toString());
  }

  public static void listEngines(){
    ScriptEngineManager mgr = new ScriptEngineManager();
    List<ScriptEngineFactory> factories …
Run Code Online (Sandbox Code Playgroud)

jython jython-2.7

6
推荐指数
2
解决办法
5834
查看次数

Jython 由 `getEngineFactories` 列出,但 `getEngineByName("jython")` 为 `null`

我创建了一个默认的 Maven Java 项目并添加了以下依赖项:

<dependency>
  <groupId>org.python</groupId>
  <artifactId>jython</artifactId>
  <version>2.7.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个包src/main/java/mypkg并添加了这个类:

package mypkg;

import javax.script.*;

class JythonMinimalTest {
    public static void main(String[] args) throws Exception {
        String engineName = "python";
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName(engineName);
        if (engine == null) {
            System.err.println("ERROR: `" + engineName + "` not available.");
            System.err.println("Available engines: ");
            for (ScriptEngineFactory factory: manager.getEngineFactories()) {
                System.err.println(factory);
                System.err.println("names:");
                for (String name: factory.getNames()) {
                    System.err.println("  " + name);
                }
            }
            System.exit(999);
        }
        engine.eval("print('hello, world')");
    }
} …
Run Code Online (Sandbox Code Playgroud)

python java jython jsr223

2
推荐指数
1
解决办法
2219
查看次数

标签 统计

jython ×2

java ×1

jsr223 ×1

jython-2.7 ×1

python ×1