- - PR -
【コマンドラインでjava内のメソッドを実行】
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-29 19:13
コマンドラインでclassファイル内のメソッドを実行したいです。
こんなことって可能なのでしょうか? ご存知の方がいらっしゃいましたら教えていただけるとありがたいです。よろしくお願いします。 PS 他の言語だったら可能だったりしますか? | ||||
|
投稿日時: 2006-11-29 19:41
Javaは起動用のメソッドが決まっています。
このメソッドがあるクラスであればどのクラスからでも起動はできます。 特定のクラスの特定のメソッドを呼んでくれるJavaのプログラムを 作りたいのであれば「リフレクション」で検索すれば調べられます。 そこまで言語をたくさん知らないけど、起動位置って定まってる言語が多数派では。 | ||||
|
投稿日時: 2006-11-29 21:17
JRuby、Jython、Groovyなどを使えば、スクリプトファイルをロード
したり、コマンドラインのパラメータを使って、特定のメソッド を実行したりできると思いますよ。awkみたいに、コマンドラインに スクリプト自体を記述することもできるかもしれませんが、 お調べください。 | ||||
|
投稿日時: 2006-11-29 21:22
実行したいメソッドを呼び出すmainメソッドを持つ、
クラスを必要分書けばいいと思います。 特定のケースでしか必要ないと思いますし、 汎用的に使いたいなら、もっと別の解決方法を考えるべきで、 そもそもの設計がおかしいです。 | ||||
|
投稿日時: 2006-11-30 10:30
ああ、あると便利そうですね。
Windows PowerShell(Monad)ではシェルスクリプトから.netライブラリを利用できますから、将来javaも同様のことをしてくれるかもしれません。 http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html | ||||
|
投稿日時: 2006-12-04 17:32
Javaではmainメソッドしか呼ぶことができない仕様のようですね。
JRuby、Jython、Groovy使うようにします。 ありがとうございました。 | ||||
|
投稿日時: 2006-12-05 17:39
参考までに、
Java6 http://download.java.net/jdk6/binaries/ ではjrunscriptツールがあってオブジェクトを生成したり、呼び出すことができます。 JSR274の実装のBeanShell http://beanshell.org/ でもできます。 しかし、直接コマンドなどと振り分けて便利な上、 Visual J#でコンパイルして.Netが呼べるので、 自作ツールを使ってます。 | ||||
|
投稿日時: 2006-12-12 17:07
こんなカンジでしょうか?
・引数でメソッド名を指定する。 ・mainメソッド内で自らのインスタンスを作成 ・そのインスタンスからgetClassしてさらにそれをgetMethodする。 (getMethodの引数にmainの引数を指定する) ・invokeメソッドを実行 今更ですけど・・・ |