4

我刚刚开始学习 Jython,但在实施方面遇到了一些问题。我查看了 Jython 2.5 附带的 Demo 文件,但我仍然不确定如何实现 Jython 以获得我想要的。

目前,我有 Java 代码将 Python 服务器作为进程执行。Python 服务器依次启动 Java 代码的第二部分作为子进程。我原本打算用 Java NIO 服务器替换 Python 服务器,但这让我很伤心,这也是我尝试 Jython 的原因。我也想把所有这些都放到一个 .jar 中。

我尝试制作一个简单的 Python 文件 ( print "Hello World")。它与 Jython 一起运行,但是当我尝试使用 java 运行它时(在执行jython -m compileall. 之后)它说它找不到 main。我假设我需要在我的 Python 代码中添加一些东西以使其工作,但我不确定是什么。

编辑:我得到的确切错误是 -

Exception in thread "main" java.lang.NoClassDefFoundError: jythonTest
Caused by: java.lang.ClassNotFoundException: jythonTest
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: jythonTest.  Program will exit.
4

1 回答 1

2

我认为答案是 CLASSPATH。

你好.py

print "Hello"

让我们运行它

> python hello.py
Hello

> jython hello.py
Hello

编译(我使用 py_compile 编译单个文件)

> jython -m py_compile hello.py

运行java

> java -classpath d:\P\jython253\jython.jar;. hello$py
Hello

注意类路径中的点。java需要在当前目录中找到您编译的类。

于 2013-03-16T05:59:37.053 回答