4

Jythonの学習を始めたばかりですが、実装に問題があります。Jython 2.5に付属しているデモファイルを調べましたが、Jythonを実装して必要なものを取得する方法がまだわかりません。

現在、Pythonサーバーをプロセスとして実行するJavaコードがあります。次に、PythonサーバーはJavaコードの2番目のセクションをサブプロセスとして開始します。私はもともとPythonサーバーをJavaNIOサーバーに置き換えるつもりでしたが、それは私に悲しみの終わりを与えませんでした、そしてそれで私が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だと思います。

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は、コンパイルされたクラスを現在のディレクトリで見つける必要があります。

于 2013-03-16T05:59:37.053 に答える