Eclipse からエクスポートされた jar ファイルがあります (実行可能な JAR >> 必要なライブラリをサブ フォルダーにコピーします)。
Java では、manifest.xml にメイン クラスを設定すると、次を実行できます。
java -jar MyTest.jar arguments
jar ファイルで別のメイン クラスを実行する場合、または manifest.xml でメイン クラスを設定しなかった場合は、次を実行できます。
java -cp MyTest.jar MyOtherMainClass arguments
Hadoop では、main クラスが manifest.xml に設定されている場合、次を実行できます。
hadoop jar MyTest.jar arguments
次のように入力します。
hadoop jar MyTest.jar MyOtherMainClass arguments
MyOtherMainClass は、jar の元のメイン クラスの「args」配列内の (実行するクラスとしてではなく) 引数として見なされます。
jar ファイルで別のメイン クラスを実行する場合は、何を入力しますか?
私は次のようなものを期待しています:
hadoop java -cp MyTest.jar MyOtherMainClass arguments
しかし、それは次のようになります:
Error: Could not find or load main class java
注意: 「hadoop java -cp MyTest.jar MyOtherMainClass 引数」から「hadoop」を削除すると、正常に起動します。