打包成jar文件后运行出现Invalid or corrupt jarfile 解决

2023-05-16



Invalid or corrupt jarfile /home/WebService.jar



Failed to load Main-Class manifest attribute from

/home/WebService.jar



打jar包

1.jar -cvf hello.jar hello.class 

2.这时java -jar hello.jar 是运行不了的


3.解压刚打的Jar包到新的目录,会发现里边多了一个META-INF文件夹里边有一个MANIFEST.MF文件


4.用记事本打开MANIFEST.MF文件,修改为

Manifest-Version: 1.0

Main-Class: Hello

Created-By: aaa


5.将MANIFEST.MF复制到和Hello.class 放在一起

然后打包:

jar cvfm abc.jarMANIFEST.MFHello.class


得到可运行的jar

 

java -jar  ***   就可以运行的jar包[ 其中***为jar包名] 


   打 Java 包的时候可以有一个清单文件:MANIFEST.MF,它是打包的关键性文件,主要是设置执行入口类和支持库的路径,在运行 Java应用程序时会根据此文件中给出的信息来查找入口类和支持库。
它的内容一般包括:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: HelloWorld
 
 
其中比较容易忽略的是还可以有一个Class-Path属性的设置,Class-Path:用来指定支持库的路径,程序运行时依据 Class-Path项的设置路径来查找支持库,每一个支持库之间用空格分开。比如这样写清单文件:
Manifest-Version: 1.0
Class-Path: ./lib/msbase.jar ./lib/mssqlserver.jar ./lib/msutil.jar
Created-By: yourName
Main-Class: org.qiujy.test.TestDB



如果出现:

java.io.IOException: invalid header field


这样的错误的话,就说明MANIFEST.MF文件有问题,比如写成了这样:


Manifest-Version: 1.0

Main-Class:com.feishan.lottery.view.Index
Class-Path: jar/jdbc_feishan.jar jar/mysql5.0.3.jar


注意:

Main-Class:后面应该有一个空格
Manifest-Version: 1.0
Main-Class: com.feishan.lottery.view.Index
Class-Path: jar/jdbc_feishan.jar jar/mysql5.0.3.jar
这样写就对了注意:最后一行也要有一个回车键。否则后面那一行是不能打包进去的

最后用java -jar lottery.jar就可以运行了

这个 manifest.mf (证明)可以放在任何位置,也可以是其它的文件名,


只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束




Manifest 技巧说明:


总是以Manifest-Version属性开头


每行最长72个字符,如果超过的化,采用续行


确认每行都以回车结束,否则改行将会被忽略


如果Class-Path 中的存在路径,使用"/"分隔目录,与平台无关


使用空行分隔主属性和package属性


使用"/"而不是"."来分隔package 和class ,比如 com/example/myapp/ (好像使用" ." 也可以)


class 要以.class结尾,package 要以 / 结尾



还有

你设置java_home了吗? 
想要删掉环境变量PATH只要把c:/java/jdk/bin(具体看你的路径)的“;”前的删掉就好了 

打开path 点下面那一大串,按home键(为了将光标移到开头) 
把你javac.exe的路径copy(只要文件夹路径)加到path然后加“;”号 
最后在cmd 里测试下 java-version          


      

总得来说,解决办法:

Manifest-Version: 1.0

Sealed: true

Main-Class: cn.baidu.main.Publish

 此处回车






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打包成jar文件后运行出现Invalid or corrupt jarfile 解决 的相关文章

  • 如何在eclipse中生成java项目的可执行文件[重复]

    这个问题在这里已经有答案了 我正在尝试为我的 Java 应用程序创建一个可执行文件 但我不知道该怎么做 我知道如何生成可执行 jar 文件 但我想制作一个可执行应用程序 我正在使用 eclipse indigo 来制作 java 应用程序并
  • 使用外部属性文件执行 jar

    我有一个带有主类的 jar 可以像这样执行 java jar test jar 罐子里有类似的东西 public static void main String args throws IOException InputStream is
  • 将外部 jar 放在 JAVA_HOME/lib/ext 目录中是一件坏事吗?

    我们有一个在 JRE 环境中运行的应用程序 该应用程序使用了一些外部 jar 我们已将它们放在 JAVA HOME lib ext 文件夹中 这对我们来说已经工作了很多年 但最近一位新程序员加入了我们的团队 他似乎强调这是一件多么糟糕的事情
  • 可运行的 JAR 无法与引用的库一起使用

    我想创建一个可运行的 JAR 其中包含引用的库 即jackson http jackson codehaus org 在 Eclipse 中通过导出 过去有fat jar这似乎是 Eclipse 提供导出到可运行 JAR 之前的 goto
  • 从 Eclipse 在 AWS-EMR 上运行 MapReduce 作业

    我在 Eclipse 中有 WordCount MapReduce 示例 我将其导出到 Jar 然后将其复制到 S3 然后我在 AWS EMR 上运行它 成功地 然后 我读到了这篇文章 http docs aws amazon com El
  • 如何对 jar 文件资源使用 File.separator?

    我正在尝试读取位于 jar 文件中的属性文件 我想使用 File separator 因为应用程序将在多个平台上运行 我正在构建路径如下 jarFilePath jar file jarFile getAbsolutePath jarPro
  • 导出 .jar 时出现 FileNotFoundException

    在我的客户端 服务器应用程序中 我需要发送一些文件 txt doc等 从客户端到服务器 当我在 Eclipse 中运行代码时 它可以工作 但是当我导出 Applet 的签名 JAR 时 它不能工作 它抛出一个FileNotFoundExce
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 如何为 com.sun.tools.javac.Main.compile() 函数设置类路径?

    我在用com sun tools javac Main compile 函数在运行时从我的 struts 项目编译 java 文件 但对于某些文件 他们需要一些特定的 jar 例如 axis2 我有 jar 但如何将它们设置为类路径以在运行
  • 使用 eclipse 将 jar 包含到 apk 中

    我试图在我的 apk 文件中包含一个 jar 文件 我尝试了以下方法 将罐子复制到lib我的项目中的目录 将 jar 添加到路径 启用 jar 导出 只需将 jar 添加到我的项目路径 其他位置 启用 jar 导出 但apk不包含jar 当
  • Git 存储库损坏(标头检查不正确;松散对象已损坏)

    昨天晚上我在写提交消息时遇到了电源故障 当我重新启动机器时 我无法完成提交 我跑了git reset 添加回更改的文件 然后再次尝试 得到 git commit error inflate data stream error incorre
  • 我可以从同一个 jar 文件执行两个不同的类吗?

    我有一个项目 在一个包中我制作了服务器 在第二个包中我制作了客户端 它运行良好 我想创建一个 Jar 文件 是否可以使用同一个 jar 文件分别运行客户端和服务器 我使用了只有一个 main 的 jar 文件 当我运行 jar 文件时 它会
  • Java编程编译jar

    我有一个文本文件中的java源代码 必须在源代码中输入一些自定义的硬编码变量 然后将其转换为 jar 这是可行的 但是当我运行 jar 时 找不到 Main 类 当我用 WinRAR 解压 jar 文件时 我似乎找不到错误 当我通过 cmd
  • 如何在linux下制作jar包?

    我怎样才能在linux中为我的java文件制作jar 我有这样的情况 我在目录 src 中有这个东西 Client java source code GUI java source code miglayout lib jar extern
  • LocationAwareLogger 上的 SLF4J NoSuchMethodError

    这是一个以前曾被问过的问题 但不幸的是 似乎没有解决方案对我有用 我面临这个异常 带有删节的堆栈跟踪 java lang NoSuchMethodError org slf4j spi LocationAwareLogger log Lor
  • JPA 和数据库位于一个 jar 中

    我创建了一个使用 JPA 和 MySQL 的应用程序 现在我喜欢用它创建简单的桌面应用程序 例如 一个简单的 jar 最好 两个问题 在一个简单的 jar 中获取一个项目 包括它所依赖的所有 jar 的最简单方法是什么 我可以使用像 sql
  • glassfish安装中的servlet-api.jar在哪里?

    我们正在将项目从 Sun App 服务器迁移到 Glassfish 为了进行编译 我们需要将类路径设置为 servlet 容器中的 servlet api jar 在 Glassfish 安装中的哪里可以找到这些罐子 Thanks 我猜您想

随机推荐

  • Debian apt update 提示 由于没有公钥,无法验证下列签名...

    sudo apt update 忽略 1 http mirrors aliyun com debian stretch InRelease 命中 2 http mirrors aliyun com debian security stret
  • Debian10:添加硬盘

    安装好Debian10系统后 xff0c 若服务器有多个硬盘 xff0c 则需要硬盘分区和格式化 xff0c 然后挂载到系统方能使用 当前服务器有两个硬盘 xff1a 硬盘0 xff1a 容量128G xff0c 用作系统盘 xff0c 已
  • Debian10: 首次配置

    Debian10系统安装完成后 xff0c 可以通过Windows客户端的XShell或同类工具远程登陆服务器进行操作 xff0c 这样会方便很多 此外 xff0c 还应该熟悉一下Linux一的vi工具和cat命令 xff0c cat命令用
  • Lz4压缩算法学习

    一 简介 Lz4压缩算法是由Yann Collet在2011年设计实现的 xff0c lz4属于lz77系列的压缩算法 lz77严格意义上来说不是一种算法 xff0c 而是一种编码理论 xff0c 它只定义了原理 xff0c 并没有定义如何
  • 03. 面向对象分析过程

    03 面向对象分析 1 面向对象 xff08 1 xff09 OOA Object oriented Analysis 面向对象分析 事物的分类 命名 描述 xff08 2 xff09 OOD Object oriented Design
  • 修改python pip安装第三方包的安装路径

    由于某种原因将pip的安装路径设置到了C盘用户目录下面 xff0c 导致每次清理垃圾时就顺带把安装的第三方包给清理掉了 xff0c 因此需要更改pip第三方包的安装路径 首先找到python的安装路径 where python 在pytho
  • 树莓派3b终端命令行播放器omxplayer,通过HDMI屏幕播放视频

    omxplayer是一款可以使用命令行控制的播放器 xff0c 图像通过 HDMI显示到屏幕上 树莓派可以运行omxplayer xff0c 在终端使用命令行播放视频 1 安装omxplayer sudo apt get install o
  • stm32单片机OLED取字模软件使用 PCtoLCD2002

    PCtoLCD2002 xff0c 适用单色屏取字模制作字库 xff0c 进行位图转换 xff0c 还可自行描点 xff0c 使用非常简单方便 1 取字模 xff0c 制作字库 打开PCtoLCD2002 单片机OLED或者其他单色屏 xf
  • Linux 下编译并安装配置 Qt 全过程

    1 获得源代码 src 官网下载地址 xff1a ftp ftp qt nokia com qt source 2009 年 10 月 1 日发布的 qt x11 opensource src 4 5 3 tar gz xff0c 大小 1
  • CentOS8使用gmssl搭建demoCA及配置OCSP服务

    本文档以CentOS8 43 GmSSL2 5 4版本为例 1 GmSSL搭建CA 1 1 安装GmSSL 我们知道 xff0c Linux下默认只有openssl的发行版 xff0c 并没有默认安装GmSSL xff0c 所以需要手动下载
  • 二、Linux SSH远程连接Windows

    1 关闭防火墙 2 允许远程访问 3 安装SSH服务器并启动 4 打开Linux查看防火墙状态 xff0c 未关闭则用system stop firwall暂时关闭防火墙 5 测试网络连通性 xff0c 不通则检查网卡 xff0c 保证网络
  • Linux qt6安装

    首先qt目前正常安装的话 xff0c 需要先在官网注册一个账号 xff0c 邮箱激活下 xff0c 记住账号密码就好 xff0c 这个是目前qt安装必须的 目前安装的方式有两种 xff0c 推荐大家使用在线联网安装 xff08 官网已不提供
  • Shell系统学习之如何执行Shell程序

    系列文章目录 Shell系统学习之什么是Shell Shell系统学习之创建一个Shell程序 Shell系统学习之向Shell脚本传递参数 Shell系统学习之如何执行Shell程序 Shell系统学习之Shell变量和引用 Shell系
  • 个人Obsidian同步和分享方案:AList+rclone+PicHoro

    Obsidian同步方案 最近尝试了下Obsidian这款笔记工具 xff0c 整体体验还是不错的 xff0c 但obsidian的同步确实是个大问题 我的主要需求是windows编辑加安卓端的查看 xff0c 偶尔可能需要编辑一下 xff
  • MySQL之limit用法

    SELECT FROM table LIMIT offset rows rows OFFSET offset 意思就是说 xff1a 可以这样子 xff1a SELECT FROM table LIMIT offset rows 或者这样子
  • 安卓定时器每5分钟执行一次方法

    import android os Handler 定时任务实现 private Handler handler 61 new Handler Runnable runnable 61 new Runnable 64 Override pu
  • 文件操作汇总

    为方便复习 xff0c 汇总一下以前相关笔记的索引 linux操作总结汇总 xff1a 进程内存通信 C语言 详解C中的系统调用open close read write C中文件操作复习 最近有关linux文件操作的总结
  • Anaconda安装及基本使用

    1 linux安装 conda可以创建多种语言环境 xff0c 支持的语言有 xff0c 可以创建多种复杂环境 xff0c 如果只需要python环境 xff0c pycharm自带的应该可以满足需求 Python R Ruby Lua S
  • Ubuntu18.04安装过程中界面卡死,完美解决办法

    让我们开始吧 在网上搜了资料 xff0c 总结如下 xff1a 1 u盘启动过程中 xff0c 会出现选择界面 xff0c try ubuntu install ubuntu等 xff0c 此时点 e 键 xff0c 会出现一个黑框 xff
  • 打包成jar文件后运行出现Invalid or corrupt jarfile 解决

    Invalid or corrupt jarfile home WebService jar Failed to load Main Class manifest attribute from home WebService jar 打ja