Develop with pleasure!

福岡でCloudとかBlockchainとか。

Javaでもirbしたい!

Rubyを使った開発だと、コンソール上ですぐにコードを実行し、その結果を確認できるirbって便利な機能がある。

Javaでも、mainメソッドを持つクラス作って実行すれば良いんだけど、わざわざそのためだけのクラスを作る必要があるのと、コードを書き換えて実行したい場合はまたコンパイルからする必要があったりと、地味にメンドクサイ。


JavaにもRubyirbのような機能が欲しい!


てことで、少し調べてみたら、BeanShellを利用することでirbライクなことが可能。

BeanShellは、JVM上で動作するスクリプト言語。文法もほぼJavaと同様なので、Javaなコードを入力するとその場で実行し、その結果を出力してくれる。これならirbのような使い方が可能。

BeanShell自体はBeanShell - Downloadsから入手。BeanShell自体はjarファイルで配布されているので、コマンドプロンプトで以下のコマンドを実行することで起動する。

$ java -cp bsh-2.0b4.jar bsh.Console

起動すると以下のようなBeanShellのコンソールが起動する。


このコンソール上で、System.out.println("Hoge");とか打つと、BeanShellを起動したコマンドプロンプト上にHogeと出力される。ただBeanShellのコンソールとコマンドプロンプトを行き来するのも面倒なので、コマンドプロンプト上で完結するようにインタプリタモードでBeanShellをすると良い。インタプリタモードで起動する場合は、以下のコマンドをすれば良い。

$ java -cp bsh-2.0b4.jar bsh.Interpreter

そうすると↓のように全てコマンドプロンプト上で完結する。

IDEを使ってる場合は、それぞれのIDEにBeanShellを実行可能なPluginとかと入れるとより簡単に起動もできて便利。

ちなみに基本的なJavaクラスにはアクセス可能なので、このコンソール上でSwingコンポーネントを生成してSwingを起動させることも可能。

追記:
コンソールに出力したい場合は、System.ou.println()を使わなくてもBeanShellが用意しているprint()を使えば、コードもより簡素になる。