コンソールからメソッドを呼び出す方法はJavaにありますか?
たとえばargs[0]
、args配列を使用して入力ファイルの名前を取得できることは知っていますが、Javaがコンソールからのメソッド呼び出しを許可しているかどうかはわかりません。
そうですね、リフレクションを使用して、呼び出したいメソッドの名前をプログラムの引数の1つとして渡し、それを使用してリフレクティブに呼び出すことができます。
本当にやりたいことに応じて、質問が「コンソールからJavaを使用する方法」であれば、BeanshellコンソールからJavaとより簡単な方法で対話できるBeanShellのようなものを検討することをお勧めします。これをプログラムで行う方法ではありません。
たとえば、Beanshellコンソールから次のように実行できます。
print(eval("Math.max(1,2)"));
そしてそれは私のコンソールに2をもたらすでしょう。
また、beanshell.jarをアプリケーションクラスパスに追加して、プログラムでevalメソッドを使用することもできます。
import bsh.Interpreter;
//...
Interpreter i = new Interpreter();
Integer r = (Integer) i.eval("Math.max(1,2)");
コマンドラインからメソッドの実行をトリガーしたいだけですか、それともバックグラウンドで何か他のものが実行されていますか?
他に何かがある場合は、スレッドについて考える必要があります。そうしないと、コマンドラインでIOを待機しているアプリケーションがブロックされるためです。
呼び出すメソッドの数と動的にする方法に応じて、リフレクションを使用できます(クラス名とメソッド名をパラメーターとして受け取り、それらを実行します)。