java导出为exe文件

本文介绍了如何正确打包Java类和非Java文件为jar文件,包括编译、创建清单、打包过程以及处理MANIFEST.MF中的常见问题。此外,还提到了使用exe4j工具将jar转换为exe的教程,以及处理JDK版本更新后可能遇到的问题。
摘要由CSDN通过智能技术生成

一、生成正确的jar文件

        如果你打包成jar的不仅仅有.java文件,还有其它的格式,比如一个视频,可以参照以下步骤:

  1. 编译Java类文件: 如果尚未编译你的Java类文件,使用Java编译器(javac)将它们编译成字节码文件。在控制台命令行中执行以下命令:

            javac 文件名.java

    这将生成 .class 文件。

  2. 创建一个清单文件: 创建一个名为 MANIFEST.MF 的清单文件,用于指定JAR文件的主类。在清单文件中添加以下内容,将文件名替换为你的Java类的主类名:

    Manifest-Version: 1.0
    Main-Class: YourClass
  3. 打包文件为JAR文件: 使用jar命令将Java类文件、清单文件和视频文件打包成JAR文件。在项目目录中执行以下命令:

    jar cfm 命名文件名.jar MANIFEST.MF 文件名.class 视频名.mp4

    这将创建一个名为 命名文件名(自己命名).jar 的JAR文件,其中包含了你的Java类文件和视频文件。

  4. 运行JAR文件: 现在,你可以通过以下方式运行JAR文件:

    java -jar 命名文件名(自己命名).jar

    这会执行JAR文件中的Java类,并访问视频文件。

以上四个步骤,代码里面没有错误基本上没问题。

举例我出现的几个问题: 

1、为什么MANIFEST中version是1.0

        "Manifest-Version" 的值通常设置为 "1.0" 是因为这是 JAR 文件清单的标准版本。JAR 文件的清单是一个元数据文件,用于描述 JAR 文件的内容和属性。清单的格式在很早的时候就已经定义,并且 "1.0" 版本的清单格式一直保持兼容性,以确保与旧版本的JAR文件兼容。

        在清单的规范中,"Manifest-Version" 的值被定义为 "1.0",而这个值在很多年里一直没有改变。这意味着,无论你创建的JAR文件是使用早期的Java版本还是较新的Java版本,都应该使用 "1.0" 作为清单版本,实际上,即使将 "Manifest-Version" 设置为 "1.0",你仍然可以在清单中包括其他自定义属性,以满足特定的需求,如指定主类等。清单的格式提供了一种灵活的方式来描述和配置JAR文件的信息。

        所以,虽然 "1.0" 似乎是一个固定的值,但它是标准的清单版本,用于确保兼容性和一致性。

2、生成的.jar中没有主清单属性

        首先,请确保 MANIFEST.MF 文件中包含正确的 Main-Class 配置,其中文件名.java是你的主类名(文件名)。

        其次,确保 MANIFEST.MF 文件与其他文件(例如 .class 文件和视频文件)在同一目录中,以便 jar 命令可以正确找到它。

        最后,不要忘记了,如果有错误的jar(之前编译错的)删除。一般都是第一步MANIFEST.MF 文件中的类名没有写正确,比如我之前写了个包package 123,结果格式没有写正确,导致出现没有主清单属性的错误。

3、基本的问题就是主类名和文件名不一致

        这个问题改一下名字就好。

二、找到合适的exe文件生成软件

        有好几个软件,我用的是exe4j,具体的教程如下

哔哩哔哩的:

【exe4j把jar转exe】 https://www.bilibili.com/video/BV15T4y1Q7dj/?share_source=copy_web&vd_source=2b792576c9e5b5a0bb742e82544b62eb

有一个小小的问题,就是随着jdk版本的更新,jre文件夹好像给取消了,就是没有合成像视频中这样了。

下面这个是老版本的

但今天发现,老版本的好像不能运行,可能是我的代码的问题还是其它的问题。反正新版本的可以,但要全部复制。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值