3

X引数のないコンストラクターを持つクラスと、mウィザードの目的で新しいJVMで実行する必要のあるメソッドがあるとします。

私の最初の考えはコマンドライン()から呼び出すことにありましたが、今はメソッドがないorg.apache.commons.exec.CommandLineという事実に固執しています(コマンドラインからJavaコードを呼び出す唯一の方法はクラスに渡すことだと思います静的メソッドが含まれていますよね?)簡単な迂回を介して、呼び出し元のクラスに独自のメソッドを作成し、その内容として持つことができますXmain()javamainmain()

public static void main(String[] args) {
  String classToInstantiate = args[some index];
  ...
}

しかし、これを達成するためのよりクリーンな方法があるかどうか疑問に思いました。

要約すると、メインコードとは異なるJVMで、任意のクラスをインスタンス化し、そのクラスで任意のメソッドを呼び出す最もクリーンな方法を知る必要があります。

ありがとう

4

1 に答える 1

1

Java 9 では、REPLが OpenJDK に含まれています。このようにして、この REPL を使用して、コンソールからプログラムでコードを呼び出すことができます。今後の更新で Java 8 に移植される可能性もあります。今日、Java 8 では、Nashorn REPL を実行することにより、いくつかの気晴らしでこれが可能になります。

または、このジョブを実行するプログラムを作成するか、Scala などの JVM 用の他の言語にパッケージされている REPL を使用することもできます。

于 2015-04-23T22:13:40.910 に答える