概要
Jython は、Python のコードを Java バイトコードに変換して、Java 仮想マシン上で実行可能にするインタプリタです。Jython により、Python の文法で記述したコードから Java のライブラリをそのまま呼び出すことができ、Python スクリプトと Java クラスのシームレスな連携が可能になります。
Java アプリケーションに組み込んだり、Java プロジェクト内でスクリプティング言語として Python を使いたい場合に有用です。
本稿更新時点での、最新の安定バージョンは Jython 2.7.4 であり、Python 3 系には現時点で対応していません。
公式サイト
https://www.jython.org
https://github.com/jython/jython


名前の由来
Jython の名前は、「Java」と「Python」の合成語です。初期の段階では「JPython」とも呼ばれていましたが、後に Jython に改名されました。
Jython を利用するために必要な Java 実行環境
Jython を利用するためには、Java 環境が必要です。
Jython 2.7.4 は、Java 8 か Java 11 での動作がサポートされています。
ここでは、OpenJDK で Java 11 の実行環境を準備します。
OpenJDK のダウンロードと実行環境の準備
1) OpenJDK のサイトにアクセスし、右側の上から2番目の段落の jdk.java.net/24 をクリック – 左側 [Java SE 11] をクリックするか、以下から OpenJDK Java SE 11 のダウンロードページに直接アクセスします。
https://jdk.java.net/java-se-ri/11-MR3



2) ここでは Windows/x64 版をダウンロードします。
3) ダウンロードした openjdk-11.0.0.2_windows-x64.zip を適当なフォルダに解凍します。
ここでは、C:\jdk-11.0.0.2に解凍しています。
解凍したフォルダ配下に bin\java.exe があることを確認します。

5) Windows の環境変数の Path に上記の bin を追加します。
[スタート] – “環境変数を編集” で検索 – 上側のユーザの環境変数内 Path の行を選択 – [編集] ボタン から
ここでは C:\jdk-11.0.0.2\bin を追加しています。

6) ターミナルを開き、java -version を実行し、応答があることを確認します。

Jython のダウンロード方法
Jython は公式サイトからダウンロードできます。
https://www.jython.org
→ Download をクリックし、その先の Jython Installer リンクからダウンロード

Jython のインストール方法
Jython は Java ベースの .jar
インストーラで提供されており、Java がインストールされていれば OS を問わず動作します。
1. Java の確認
Jython を実行するには Java 8 か 11 以降 が必要です。
Java の準備ができているかは、以下のコマンドで確認できます。
java -version
2. Jython のインストール
ダウンロードした .jar
ファイルを使ってインストールを開始します。
java -jar jython-installer-2.7.4.jar
ここでは、C:\Jython 配下に jython-installer-2.7.4.jar を置いて実行しています。

GUI のインストーラが起動するので、表示に従って進めます。
とりあえずはデフォルトで進める形でよいと思います。









インストール完了後は、インストール先の bin\jython.exe に実行ファイルがあります。(必要に応じて 手動で jython.exe へのパスを設定します。)
以下は対話型に print を実行した例です。
jython.exe
>>> print("Hello from Jython!")
Hello from Jython!
終了は exit() か Ctrl+D の入力 です。

CPython との比較
特徴 | Jython | CPython |
---|---|---|
実装言語 | Java | C |
対応 Python バージョン | Python 2.7 系まで | 最新の Python(3.x)対応 |
C拡張モジュール | 使用不可 | 使用可能(NumPy, SciPy 等) |
Java ライブラリの利用 | 可能(Java のクラスをインポート可能) | 不可 |
マルチスレッド処理 | GIL がないため実スレッド並列が可能 | GIL により制限あり |
処理速度 | Java の最適化により一部高速な場合あり | 高速だが C 拡張依存が多い |
実行例
Python から Java のクラスを使う
Python から Java のクラスを使う例です。
from java.util import Date from java.lang import System now = Date() System.out.println("Current date and time (java.util.Date): %s" % now)
これを、例えば test24-date.py と保存して実行すると以下のように表示されます。
> cd C:\Jython\jython2.7.4\bin\
> .\jython.exe .\test24-date.py
結果
Current date and time (java.util.Date): Sun Apr 13 10:19:48 JST 2025

Java の GUI を使う(Swing)
Python から Java の GUI (Swing) を使う例です。
from javax.swing import JFrame, JButton, JOptionPane from java.awt import FlowLayout from java.awt.event import ActionListener class ButtonClickListener(ActionListener): def actionPerformed(self, event): JOptionPane.showMessageDialog(None, "Hello from Jython GUI!") frame = JFrame("Jython Swing Sample") frame.setSize(300, 150) frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) frame.setLayout(FlowLayout()) button = JButton("Click me") button.addActionListener(ButtonClickListener()) frame.add(button) frame.setVisible(True)
これを、test24-swing.py と保存して実行すると以下のようになります。
> cd C:\Jython\jython2.7.4\bin\
> .\jython.exe .\test24-swing.py
ターミナルで実行後に、別のウィンドウが立ち上がり、そのウィンドウのボタンをクリックするとさらにダイアログが表示されます。


