jar为什么找不到主类
⑴ Eclipse生成JAR包后,双击找不到主类
你的问题主要是没有找到主类入口:
可用以下方法解决:
1.首先保证你的工程中至少有一个包含Main函数
2.选择你的工程右键导出,选择java下的runable jar file
3.然后点击next后出来选择主类的界面,和生成jar的名称。
这时需要在lanch configuration处选择你的主类,并export destination处填写生成jar的名称。其他保持默认.点击finish,就生成可运行的jar文件了。双击就可以运行了。
4.注意,如果你这个程序是图形界面的话,效果可以直接看见。如果在控制台输出一些东西,这样话会没有反应。如果没有报错,就表示运行成功。
⑵ 运行java文件显示找不到或无法加载主类怎么解决
clean 重新build 或者让clean package 用maven打包,如果复杂点是第三方jar找不到 ,可能是未下载或未下载完全,具体分析,可以采纳私聊
⑶ jar 打包后运行无法加载主类
为了找到这个原因,我重新搭建了一个测试例子,在src/com下新建了一个HelloWorld.java类,输出HelloWorld。然后把它导出jar包,依然报错:找不到或无法加载主类。
后来打开这个jar包发现在test.jar里边还有一个test.jar包
然后我把里边这个jar包提取出来后,运行java -jar test.jar就不会报错了,也能正常输出HelloWorld
经过各种重复实验,重新尝试每一步的配置,终于发现了错误的地方。
根据网上的配置,在 Project Structure --> Artifacts中,添加jar包时,选择了 to the out directory and link via manifest
备注:我参考的Idea打jar包的方法链接是:http://www.cnblogs.com/blog5277/p/5920560.html
他说:
选中第一个的话,打完包后是一个jar包
选中第二个的话,打完包后是一个jar包,外带你项目所用的jar包
如果选择了第二个,在下一步的配置中,就会出现两个test.jar。可以看到,上一步骤生成了一个test.jar,并且外边的test.jar还需要再重新创建一个MANIFEST.MF文件
经过测试,即使我创建外边的MANIFEST.MF文件时,把里面的test.jar包打进去,依然会报错:找不到或无法加载主类。
综上所诉, 我又尝试在最开始选择配置的时候,如果选择extract to the target JAR(提取到目标jar包) 这个选项,那么对于我这个测试项目就完全没问题了,生成的test.jar包里包含MANIFEST.MF文件,并且这个包里不会再有其他的jar包了,就没有问题了
但是如果我生成的jar包,需要引用其他的jar包,需要在下一步,Class Path栏里手动输入引入的jar包。
至于这里的classpath如何填写,相当于在之前错误用法时生成的META-INF/MANIFEST.MF文件里所引用的jar包一样。