2017-06-09 6 views
1

私はRFTがスクリプトにpublic static void main(String[] args)を含まないにもかかわらず、どのように動作するのだろうと思っていました。スクリプトには、スクリプトを実行しているpublic void testMain(Object[] args)というメソッドが含まれています。 public static void mainがなくても、RFTでこれがどのように起こっているか説明できますか?RFTスクリプトを開始するために "public static void main"が必要ないのはなぜですか?

答えて

0

Javaプログラムには固定エントリポイントがありません。実際には、アクセス可能であれば、任意のメソッドを呼び出すことができます。どのメソッドが呼び出されるかは、呼び出しを行っているアプリケーションに依存します。

何が起こるかというとdocsに述べたように、javaコマンドラインツールということです:javaコマンドは、Javaアプリケーションを起動する

。これは、 Java Runtime Environment(JRE)を起動し、指定されたクラスをロードし、そのクラスのmain()メソッドを呼び出す を呼び出すことによって行います。このメソッドはパブリック とstaticと宣言されていなければなりません。値を返す必要はなく、配列として配列 をパラメータとして受け取る必要があります。

これはちょうどjavaツールの動作です。他のツールは異なる動作をすることができます。

+0

https://stackoverflow.com/questions/15173474/can-we-execute-a-java-program-without-a-main-method – Roland

0

RFTスクリプトをJavaアプリケーションとして実行しないため、main()メソッドはありません。実際にRFTの一部を開始し、testMain()メソッドを呼び出します。開始するRFT部分には、main()メソッドが含まれています。 JUnitのテストケースと比較することができます.JUnitフレームワークを実行すると、注釈付きのテストメソッドがすべて呼び出されます。 RFTではRFT部分を実行し、testMain()メソッドが呼び出されます。

関連する問題