了解如何使用Jython的问题

时间:2013-03-15 19:52:31

标签: java python compilation jython jython-2.5

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

目前,我已经将Java代码作为Process执行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.

1 个答案:

答案 0 :(得分:1)

我认为答案是CLASSPATH。

hello.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需要在当前目录中找到已编译的类。