在 Project Structure --> Artifacts中,添加jar包时,选择了copy to the out directory and link via manifest

TIM截图20190521165556.jpg
选中第一个的话,打完包后是一个jar包
选中第二个的话,打完包后是一个jar包,输出你项目所用的jar包
如果选择了第二个,在下一步的配置中,就会出现两个test.jar。可以看到,上一步骤生成了一个test.jar,并且外边的test.jar还需要再重新创建一个MANIFEST.MF文件

TIM截图20190521165758.jpg
经过测试,即使我创建外边的MANIFEST.MF文件时,把里面的test.jar包打进去,依然会报错:找不到或无法加载主类。

TIM截图20190521165819.jpg
综上所诉, 我又尝试在最开始选择配置的时候,如果选择extract to the target JAR(提取到目标jar包) 这个选项,那么对于我这个测试项目就完全没问题了,生成的test.jar包里包含MANIFEST.MF文件,并且这个包里不会再有其他的jar包了,就没有问题了
但是如果我生成的jar包,需要引用其他的jar包,需要在下一步,Class Path栏里手动输入引入的jar包。

TIM截图20190521170028.jpg
至于这里的classpath如何填写,相当于在之前错误用法时生成的META-INF/MANIFEST.MF文件里所引用的jar包一样。