我刚开始学习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.
答案 0 :(得分:1)
我认为答案是CLASSPATH。
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需要在当前目录中找到已编译的类。