之前有写过一篇使用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邮箱,只要我收到了就证明成功:




eclipse生成【带有外部jar包】的java可执行jar包的更多相关文章

  1. IntelliJ IDEA导出Java 可执行Jar包

    原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...

  2. SpringBoot小技巧:修改java可执行jar包内容

    SpringBoot小技巧:修改java可执行jar包内容 情景描述 在生产环境中,有时候我们发现了个小bug,开发迅速修改代码后,很多时候我们不得不重新发布一个新的可执行jar包上去替换掉.但是这样 ...

  3. Java:执行jar文件命令

    Java:执行jar文件命令 执行jar文件命令: java -jar test.jar win7系统切换目录命令: cd /d d:/test

  4. eclipse将引用了第三方jar包的java项目打成jar包

    今天用java开发了一个项目,想要打成jar包,并在linux环境下运行.但是运行时引用的第三方jar包却显示classNotFind错误. 于是查了一下解决办法,在此贴出来,方便以后查阅. 用Ecl ...

  5. java命令执行jar包的方式

    http://www.cnblogs.com/adolfmc/archive/2012/10/07/2713562.html 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有 ...

  6. IntelliJ IDEA导出Java 可执行Jar包

    extends:http://blog.sina.com.cn/s/blog_3fe961ae0102uy42.html 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下 ...

  7. 运行java可执行jar包

    导出与导入:如果要用别的项目的类, 把对方类export出成jar包(多个类的集合),然后复制到自己项目路径下然后添加至构建路径,jar包右键buildpath/addtobuildpath.expo ...

  8. java -cp 执行jar包里的某个类

    当我们需要测试某个功能时,需要在linux环境下执行某个类的main方法来测试 可以使用java -cp xxx.jar com.MyClass来执行某个类 java -cp test.jar:lib ...

  9. idea打包java可执行jar包

    1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> From modules with dep ...

随机推荐

  1. 取IP的几个方法

    ifconfig eth0|grep " inet add"|cut -d":" -f2|cut -d " " -f1 ifconfig e ...

  2. aop难点解析。

    静态织入和动态织入的区别? 需求示例:假设有一个包,一个包当中有一个方法,我们想在这个方法的前后,加上环绕. 那么怎么加呢? 把知道的都说一遍. 1.建立JsonService 2.建立JSONASP ...

  3. C# 语法学习整理

    1.协变与逆变的概念 文章地址:https://segmentfault.com/a/1190000007005115 **************************************** ...

  4. 简述TCP网络编程本质

    基于事件的非阻塞网络编程是编写高性能并发网络服务程序的主流模式,头一次使用这种模式编程需要转换思维模式 .把原来的"主动调用recv()来接收数据,主动调用accept()来接受连接,主动调 ...

  5. 张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用

    今天是大年初二,都去走亲戚了吧,享受一下这难得的能和亲友相聚的时光.而我就不一样了,今天一回到家就又开始瞎折腾了,哈哈哈. 问题背景 最近花了点时间用 ASP.NET Core 2 写了个个人博客,中 ...

  6. Python数据结构之一——list(列表)

    Python版本:3.6.2  操作系统:Windows   作者:SmallWZQ Python包含6种常见的内建序列.它们分别是列表.元祖.字符串.Unicode字符串.buffer(memory ...

  7. 集合的综合练习:Poker牌

    /* 刘意教程示例:*/ package cn.onecool.cot; import java.util.ArrayList; import java.util.Collections; impor ...

  8. devexpress entity framework 与 asp.net mvc的坑

    最近在做一个使用ASP.NET MVC DEVEXPRESS和EF的OA模块 遇到不少问题这里记录一下: 1 如果项目中存在多个上下文类(DBContext的派生类),在做数据迁移的时候需要在不同目录 ...

  9. 洛谷P2832 行路难 分析+题解代码【玄学最短路】

    洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...

  10. Spring-Security自定义登录页&inMemoryAuthentication验证

    Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架.框架下内容比较多,可以做到按照角色权限对请求路径进行限制.今天主要验证自定义登录页,在内存用户存储中进行请求 ...