之前有写过一篇使用eclipse生成java可执行jar包,但是最近的一次使用中无论如何都不成功,当双击执行打成的jar时,弹出如下错误:
could not find the main class:mailTest.SendMailTest1.Program wil exit
针对这一问题,我首先想到在上一次编写java聊天小程序打包时的问题,也是这个错误,当时网上说需要更改eclipse中该项目的jdk版本为1.6,如图:
虽然意料之中,但是依旧有些遗憾的是,这样修改后生成的jar包,在双击执行时依旧弹出图1的错误,然后在网上搜索之后,找到了一个正确的步骤,也知道了按之前方法打包不成功的原因。(不过,这一次打包时,发现还是必须改成1.6才成功,和上次也不一样)
原因在于之前的方式的前提是没有引用外部的包,而这里是引用了发邮件的那个mail包。
正确的步骤如下:
1、鼠标右击项目--》选择export--》选择java--》选择JAR file--》点击next--》选择要生成的jar包的存放路径,如图:
--》点击next--》继续next(必要时可以去掉这里出现的界面中最上边两个选项)--》在出现的界面如图操作:
勾选箭头1处,然后在Manifest file后边选择输入“/项目名/文件名”--》点击finish,之后会看到项目中多出一个文件,如果没有看到,刷新下项目应该可以看到:
2、打开刚才生成的文件,例如这里的SendMailTest1,在里边添加两行:
Main-Class: main方法所在的类的全路径
Class-Path: 外部jar包的路径
因为这个文件生成的时候自己写入了一行,因此加入上边两行以后文件中会有三行:
这里需要注意的是,我一开始按这个步骤打出的jar执行后还是图1的错误,后来查了好久才知道我在写入那两行数据时冒号后边没有空格,所以这里一定要空格才可以。
3、保存上边的文件后,在执行一开始的步骤:鼠标右击项目--》选择export--》选择java--》选择JAR file--》点击next--》选择要生成的jar包的存放路径--》点击next--》继续next(必要时可以去掉这里出现的界面中最上边两个选项)--》在出现的界面如图操作:
和之前的选择不一样,这里需要选中箭头1指的地方,然后在Manifest file后选择刚才生成和修改过的这个文件--》点击finish,jar生成成功。
我这个小程序的main方法就实现了一个很简单的功能,双击后发送一封邮件到我的qq邮箱,只要我收到了就证明成功: