uso

雑記いろいろ
★書いてある内容に保証は一切ありません。
 ご自身で判断をしてください。

[jython]調べてみた

2016-01-24 04:07:07 | work
■Jythonについて調べてみた

Jython入門にはここ
http://www.ogis-ri.co.jp/otc/hiroba/technical/jython/jython1/html4/

以下は参考にしたサイトの抜粋。

Jythonは、JVM上で動作するスクリプト言語です。
JavaVM上で動くJava以外の言語です。
Jythonは、Pythonというスクリプト言語の処理系の一つです。
Jythonの処理系はJavaで記述されています。


●Javaと違ってコンパイルする必要がない
●「擬似コードを使って設計するのに近い感覚」で実装できる
●JythonからJava、JavaからJythonを利用できる

そもそもPythonとは・・・
・シンプルでちょっと特徴的な文法
・豊富な基本ライブラリ
・実行時にバイトコードコンパイルする(さらに次回の実行のためにコンパイル結果をキャッシュすることが可能)

Pythonの実行系には二種類あり、一つはC言語で実装されたふつうのPython (CPython)、
もう一つはJava言語で実装されたJythonです。

Pythonは、実行時にソースコードを独自のバイトコードに変換した後、処理を行います。
それに対してJythonはJavaバイトコードに変換するという違いがあります。
Jythonの機能はPython互換を目指して開発されています。

■Jythonセットアップ

ダウンロード
http://www.jython.org/
Jython 2.5.4rc1をDL。最新の1こ前。意味はない。
jython-installer-2.5.4-rc1.jar

Verが違うせいか、参考サイトの方法ではインストーラーが動かなかったので、
公式サイトの方法を見ながらやってみた。日本語ないのか?
https://wiki.python.org/jython/InstallationInstructions


コマンドプロンプト、ダウンロードしてきたjarファイルがある場所に移動。
コマンドをたたき、インストーラーを立ち上げる。
 D:\Users\XXX\work\Jython>java -jar jython-installer-2.5.4-rc1.jar

Welcome To Jythonという画面が出てくる。
Langageが選べるが、EnglishとGermnしかない。超妥協してEnglishにした。
ちょっと調べてみたが、日本語がそもそもJythonって使えない?

標準インストール。
java homeをCurrent か Otherでパスを出してくるので、Otherにしてみた。
JAVA_HOMEって環境変数切ってなかったから。
自分の環境の場合、
D:\Program Files\Java\jdk1.8.0_45
がJavaのインストール先で、Otherのパス欄に自動的に出ていた。binまでいかなくていいのか?

インストールしたディレクトリのbinに移動し、jython.batを起動する。
D:\Program Files\jython2.5.4\bin
Dドライブにcdする時はスイッチを使う⇒cd /d d:\
いろいろとjarを読み込んで動く。ちょっと時間かかる。

↓↓の表示が出たらOK。
Jython 2.5.4rc1 (2.5:723492dbab02, Feb 8 2013, 09:50:55)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_45
Type "help", "copyright", "credits" or "license" for more information.
>>>

↓↓動かしたらこんな感じ。
http://www13.atpages.jp/jython/jy/
Jython 2.5.4rc1 (2.5:723492dbab02, Feb 8 2013, 09:50:55)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_45
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> a=1
>>>
>>> a
1
>>>

■トラブル発生
print("こんにちは")
とか
print("hello")
といれると、・・・で何も反応しない。

その後、入力はできるが何も反応しないので、Ctrl + c + Enterすると、
LookupError: unknown encoding 'ms932'
と出た。

ググってみる。
http://d.hatena.ne.jp/dooluka/20101215/1292425135
jython2.5.0からの既存バグだそうです。

起動時のコマンドを変えるとOK。
jython.bat -C utf-8

>>> a = hello
>>> a
hello

print("hello")
print('hello')

はOKだが、日本語は無理。

>>> print("こんにちは")
File "<string>", line None
SyntaxError: Illegal character in file '<stdin>' for encoding 'utf-8'

ちょっと調べたが、解決しなかったよ。