我有一个从 Eclipse 导出的 jar 文件(可运行的 JAR>>将所需的库复制到子文件夹中)。
在 java 中,如果您在 manifest.xml 中设置主类,您可以运行:
java -jar MyTest.jar arguments
如果你想在 jar 文件中运行另一个主类,或者你没有在 manifest.xml 中设置主类,你可以运行:
java -cp MyTest.jar MyOtherMainClass arguments
在 Hadoop 中,如果在 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 arguments”中删除“hadoop”,它将正常启动