IDEA上的4种Artifacts形式

结论:

1,在Create JAR from Modules页面中,最简单的方式为Main Class为空,选择extract to the target JAR。

这样不会指定主类,不会生成MANIFEST.MF文件。

2,Main Class会在jar包内的MANIFEST.MF中指定主类,执行jar包时不可以另外指定主类

3,选项extract to the target JAR(提取到目标JAR)不会在MANIFEST.MF文件中链接依赖的jar包(整包)。

选项copy to the output directory and link via manifest(复制到输出目录和清单链接)会将依赖的一个jar包放在目录中,在MANIFEST.MF文件中以链接的形式引用jar包(散包)。

 

 

Create JAR from Modules页面

IDEA上的4种Artifacts形式

 

 

NO Main Class

extract to the target JAR

IDEA上的4种Artifacts形式

IDEA上的4种Artifacts形式

IDEA上的4种Artifacts形式

hadoop jar WordCount.jar WordCount input/demo/word.txt output
成功

 

 

Main Class

extract to the target JAR

IDEA上的4种Artifacts形式

 

 

 IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式

 

 

 

hadoop jar WordCount.jar input/demo/word.txt output
成功

 

 

NO Main Class

copy to the output directory and link via manifest

IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式

 

 

 IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式

失败
Exception in thread "main" java.lang.ClassNotFoundException:
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

hadoop jar WordCount.jar WordCount input/demo/word.txt output
删除MANIFEST.MF文件成功

 

Main Class

copy to the output directory and link via manifest

IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式IDEA上的4种Artifacts形式

hadoop jar WordCount.jar input/demo/word.txt output
成功

 

上一篇:webpack需要全局安装,才能使用webpack命令


下一篇:Spring Cloud Gateway的断路器(CircuitBreaker)功能