JavaによるPython実装「Jython」初学者向けまとめ

Javaの資産をPythonから使いたい。
Jythonって名前は知ってるけど、どういうものなのかは知らない…

JVM上で実装されたPythonであるJython。もしかして初めて知ったって人も多いのではないでしょうか。

こんにちは、Pythonが大好きなライターのフクロウです。

この記事では、JavaやScalaなどのJVM言語の資産が簡単にPythonから使える、Jythonについて紹介します。Jythonがどんなものなのかの紹介だけでなく、Jythonに関する記事等へのリンクもまとめています。また、JythonによらないJVM言語との連携方法についても紹介していきます。

この記事はこんな人のために書きました

  • Jythonについて知りたい方
  • Jythonの資料を探している方
  • PythonとJVMの連携方法が知りたい方

Jythonについて、わかりやすく解説していますのでぜひ参考にしてください。

Jythonってなんだろう

JythonはJVMで動くPython

もっとも使われているPython実装はC言語で実装されたCPythonです。多分皆さんもCPythonを利用していると思います。これに対して、JythonとはJavaで実装されたPythonです。

jython.github.io

JavaはJVMで動作する言語であり、このような言語は他にもたくさんあります。


JVMで動作する言語の例

  • Java
  • Scala
  • Clojure
  • Kotlin
  • Groovy


※JVMについて詳しく知りたい方は以下の記事をチェックしてください。
【Java入門】JVMとは?わかりやすく解説!
更新日 : 2019年5月23日

Jythonを使うことで、PythonからJavaなどで書かれたプログラム資産を簡単に使うことが出来ます。

Jythonのすごいところ

Jythonを使うことで、PythonからJavaの資産を使う、JavaからPythonの資産を使うなどが出来ます。また、オープンソースの画像処理ソフトであるImageJでは、Jythonを使ってスクリプティングができるようです。

Jythonの注意点

Jythonなどを始めとした、CPython以外のPython実装にだいたい当てはまることなのですが、情報を集めるのが大変です。検索上位に引っかかる情報が数年前のものであったり、書籍が少なかったり(更にやっぱり古かったり)します。

また、PythonからJavaの機能を呼び出すのは、py4jのようなライブラリを使うことでCPythonからでも出来てしまいます。個人的にはできるだけCPythonでできることはCPythonでやってしまうのをおすすめします。(py4jについては後述します)

「Jython」と検索して出てくる公式サイトはwww.jython.orgです。こちらよると、2015年にJython 2.7.0 Final Releasedとして2.7が出て以降、新しいバージョンは公開されていない用に見えます。

ですが実はjython.github.ioに新しいウェブサイトがあります。こちらで2.7.1 Final Releasedとして後継が公開されています。

Jythonのインストール

インストーラを使った方法

Jythonはjarファイルとして公開されているので、これをダウンロードすることで利用できます。以下のページから最新版をダウンロードしましょう。

https://jython.github.io/download

 

Jythonをインストールして使う場合はJython Installerを、インストールせずに使いたい場合はJython Standaloneをダウンロードして使ってください。

pyenvを使った方法

Pythonのバージョン管理ソフトpyenvを使えば、コマンドライン(端末エミュレータ上で)インストールを行うことができます。まずはpyenvでインストールできるPythonのバージョンを、以下のコマンドで確認してみましょう。

すると様々なバージョンのPythonが列挙されます。この中に表示されたものはpyenvからインストールできるので、jythonの最新版をインストールしてみましょう。

[出力結果を抜粋] ここではjython-2.7.1が最新版ですね。インストールは以下のコマンドを使います。
ちなみに、この記事のテストにはMacを使っています。jythonをこの方法でインストールする場合でJavaがまだ入っていない場合は、Javaのインストールを進められます。Java自体がないとJythonも使えないのでインストールしておきましょう。

Jythonの使い方

Jythonを使ってみたい!という方に向けて、Jythonのドキュメント集をまとめました。

Jythonのドキュメント集

The Definitive Guide to Jython、Jythonの最新版のドキュメントです。大体のことはここを読めばわかりますよ!


jythonのリポジトリです。ドキュメントを読んでもわからないことはコードを読むしかない場合もあります。


Gitとはまた違ったバージョン管理ソフトであるMercurial。Jythonはここで開発されています。


Djangoのドキュメントです。PythonのWebフレームワークであるDjangoをJythonで使う方法を紹介しています。

2008年に出版されたJythonの和書です。日本語で学びたい方向けです。

Oracleが公開している「Jythonの基礎̶成熟した代替言語を新鮮な視点で捉える」という題のPDFです。こちらも日本語なのでわかりやすいです。ただし、PDF内のリンクが切れているようなので注意してください。

Oracleが公開している「Jython 2.7:PythonとJavaの融合」という題のPDFです。こちらも日本語です。2015年のものなので比較的新しく、オススメです。

Jython以外のPython⇔JVM連携

Jython以外にも、Python⇔JVM連携ができるツールがあります。

JVMで使えるPython3「cafebabepy」

まずはJavaによるPython 3実装のcafebabepyです。

JythonはPython 2系なので、Python 3系が使いたいという方にはこちらのほうがおすすめですね。

PythonからJarファイルのメソッドが実行できる「Py4J」

Py4JはCPythonからJarファイルのメソッドを実行する事ができるPythonライブラリです。

Py4JはJavaを起動させることはできないので、実際に使うときはJVMを自分で起動させておいてから使う必要があります。使い慣れたCPythonでJavaと連携することができるので、ここで紹介したものの中では一番お手軽な方法だと思います。

まとめ

この記事ではJVMで動くPythonであるJythonを紹介しました。

「JVMのプログラムをPythonから使える」ということに魅力を感じるならば、Jython(またはcafebabepy)を勉強することは非常に楽しいことでしょう。また、Py4Jなどのライブラリを使うことで、CPythonからJavaを使うことも可能です。

用途に合わせて使い分けるのが良いと思います。まずはPy4Jを試してみて、もっと高度なことをしたければJython/cafebabepyを試してみるというのをオススメします。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

フクロウ

フクロウ

第一言語はPythonです。
皆さんRustやりましょう。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説