java项目导出为一个可执行文件jar包

java项目导出为一个可执行文件jar包

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1.选择要导出的项目。

对->export,选java在下面JAR file->next,选择要导出路径->next,finish。

 

2.选中导出的jar文件用压缩文件管理器打开

 java项目导出为一个可执行文件jar包

3.有个META-INF文件夹,把里面的MANIFEST.MF文件拖出来。此时MANIFEST文件内容应该仅仅有以下这一行:    

</pre><pre code_snippet_id="439185" snippet_file_name="blog_20140731_2_9115505" name="code" class="html"><span style="font-size:24px;"> Manifest-Version:1.0</span>

4.改动MANIFEST.MF。我改动后的内容例如以下:

Manifest-Version: 1.0
Main-Class: javamail.JavaMailTest    
Class-Path: mail.jar

 Main-Class后面是Main函数所在的类,javamail是包名。

 Class-Path 后面是用到的外部jar,有多个时用空格分开。

  我的mail.jar和自己导出的jar包是在同一文件夹下的,所以没有写其它路径。

  注意:Manifest-Version,Main-Class,Class-Path后面跟英文冒号,然后加一个空格,后面才写内容。每行的结尾一定记得用回车。包含最后一行。也就是说,在我这个文件里,最后关闭时,光标停留的位置应该是在Class-Path的以下一行,保险起见,还能够再敲两个空格。(没有为什么,就是MANIFEST.MF文件格式的要求==)

 

5.将改动后的MANIFEST.MF文件再拖回到原来的jar中,覆盖掉原有的MANAFEST.MF。

 

6.导出的jar包就能够执行了,

 e.g. 命令行输入

           java -jar  F:\tyqtest\AutoSend.jar  



==============切割线======

后来发现上面写的方法好笨,导出时直接选中导出为可执行包(runnable),并选中package required libraries into generated JAR(将引用的外部包导入生成的jar包)==然后就能够了。

 

 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117343.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java服务器后端框架_现在主流的java后端框架

    java服务器后端框架_现在主流的java后端框架Mars-javaMars是一个声明式API编程框架,可以帮助你很快的建立后端服务接口你可以专注在业务逻辑上,而不需要花太多的时间去写Controller和DAO同时我们依然支持传统ControllerPlayFrameworkplayframework是一个full-stack(全栈的)JavaWeb的应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Gro…

    2022年6月1日
    49
  • c语言中按位异或的作用,C语言 按位异或实现加法(示例代码)

    c语言中按位异或的作用,C语言 按位异或实现加法(示例代码)/*C语言按位异或实现加法*/#include#include#includevoidtest1(){inta=2;intb=3;intcand=0;intcxor=0;intc=0;//实现c=a+b//1.不考虑进位,按位计算各位累加(用异或实现),得到值xor;cxor=a^b;/*实现说明:a的值是2,对应计算机中补码是0000000000000…

    2022年5月10日
    42
  • OutputDebugString()

    OutputDebugString()

    2021年11月24日
    39
  • MFC中使用CreateThread创建线程[通俗易懂]

    MFC中使用CreateThread创建线程[通俗易懂]HANDLEm_hListenThread=CreateThread(NULL,0,ThreadProc,this,0,NULL);DOWRDWINAPIThreadProc(LPVOIDlpParameter){xxxx*pxxx=(xxxx*)lpParameter;while(TRUE){//dosomethingSleep

    2022年7月27日
    1
  • 迁移学习——Domain Adaptation

    DomainAdaptation在经典的机器学习问题中,我们往往假设训练集和测试集分布一致,在训练集上训练模型,在测试集上测试。然而在实际问题中,测试场景往往非可控,测试集和训练集分布有很大差异,这时候就会出现所谓过拟合问题:模型在测试集上效果不理想。以人脸识别为例,如果用东方人人脸数据训练,用于识别西方人,相比东方人识别性能会明显下降。当训练集和测试集分布不一致的情况下,通过在训练…

    2022年4月16日
    39
  • arraydeque方法_双端队列如何理解

    arraydeque方法_双端队列如何理解ArrayDeque双端队列完全解析重点:底层通过循环数组实现俩个重要属性headtail不能添加null值,不然会报空指针每次扩容都是2的n次方可以实现普通队列先进先出排序,也可以实现栈先进后出的排序特别留意,它里面通过二进制方式判断数组是否已满(tail=(tail+1)&amp;amp;amp;amp;amp;amp;amp;amp;amp;(elements.length-1))==head注意操作插入…

    2022年9月20日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号