java jar 的清单属性

2024-04-20

在您的帮助下,我完成了我的第一个 Java 项目。现在我想创建一个 jar 并从 jar 运行应用程序(Java 项目 - 它是一个普通的控制台应用程序,它有另一个项目(控制台应用程序)作为依赖项)。

我通过右键单击 - 导出 - 创建一个 jar 使用 eclipse 创建了一个 jar。当我尝试从 cmd 运行这个 jar 时,出现错误(下面是我收到的错误)

no main manifest attribute, in AAA.jar

我用谷歌搜索了错误 - 他们中的大多数都受到创建清单文件的影响。我在项目中创建了一个如下所示的清单文件,等于 src 级别

Manifest-Version: 1.0
Main-Class: com.Pacakename.mainclass
Class-Path: log4j-1.2.16.jar db2jcc.jar db2jcc_license_cu.jar

然后 J 尝试再次运行 jar,但这次它说没有 main 方法,而我在类中有一个 main 方法

请有人解释一下创建清单的清晰步骤(如果你向我展示清单文件所在位置的文件夹结构,这对我真的很有帮助)


假设您有以下目录结构:

MyJavaProject
   |-src 
      |- com
          |- example
               |- Main.java

要在命令行中编译此类项目,(无外部依赖项)您需要调用命令

$ cd MyJavaProject
$ mkdir bin         //to separate *.class file from source files
$ javac -d bin src\com\example\Main.java

这将创建Main.class文件输入bin目录。要将其打包到 *.jar 文件,您可以: 1)用二进制文件创建jar并在cmd中指定Main类 2)创建Manifes并将其嵌入到jar中(我将重点关注这一点)

你应该创建META-INF目录下src并在其中创建MANIFEST.mf file

您的清单应如下所示:

Manifest-Version: 1.0
Created-By: <Your info>
Main-Class: com.example.Main

记得在清单末尾添加空行!

在这种情况下,您指定Manifest-Version属性,Created-By属性,以及要运行的主类的完全限定名称Main-Class属性

要使用此清单文件和二进制文件创建 Jar,请调用命令

$ cd bin
$ jar cfm MyJavaProject.jar ..\src\META-INF\MANIFEST.MF .

这将创建一个名为的新罐子MyJavaProject.jar并使用你的清单

如果您的项目依赖于外部类或 jar,请在编译时将它们添加到您的类路径中(-cp选项)并添加另一行Manifest

ClassPath: path/to/dependent/jars/jar.jar

重新编译它并创建新的 jar 并享受您的 Java 任务:)

有关清单的更多信息,请参阅:docs http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

PS:从命令行使用 jared 清单可能看起来很难看,但它可以教你一些类似 ava 的概念。如果您想跳过它,请考虑使用阿帕奇Maven http://maven.apache.org/ or 阿帕奇蚂蚁 http://ant.apache.org/

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

java jar 的清单属性 的相关文章

随机推荐

  • 使用 Rails 动态构建 RESTful 路由

    我正在尝试编写一个辅助方法 该方法接受复数资源的名称并返回相应的链接 该方法的本质是 def get link resource link to resource capitalize resource path end 显然resourc
  • Django CMS 多级下拉菜单

    我对 Django CMS 有点陌生 我尽力避免询问 但这让我发疯 我制作了一个带有主题和类别模型的 Wiki 应用程序 我将它连接到我的 CMS 上的一个站点并将其添加到我的菜单中 现在我希望能够在我的菜单上显示所有顶级类别 其子类别和主
  • 类型错误:Object(...) 不是 Vue 中的函数

    我是 Vue 新手 正在尝试处理表单 我正在制作一个网络应用程序来管理会议 为此我有一个多步骤表单来处理访客和主持人数据 当我单击提交按钮时 出现以下错误 TypeError Object is not a function 我在 stac
  • Nginx:从不同的根目录和位置提供 JPG 图像

    我有 3 个不同的存储区域 头像 文章 趋势 用于存储我的图像 我想将 URL trends 123 jpg 链接 到趋势文件夹 avatars 23 jpg 链接 到头像等 配置一 server listen 8089 server na
  • 使用偏移时导航栏项目可点击区域被剪切

    在 SwiftUI 中 考虑这个导航栏 这是尾随的方式 navigationBarItems宣布 HStack spacing 0 Button action self addListModal true label NavBarImage
  • Python - 对包含字符串和数字的列表中的数字值进行排序

    我创建了一个列表 其中包含 python 中分数文件的所有信息 分数 txt 文件 Dan Danson 9 6 1 John Johnson 5 7 10 Mike Mikeson 10 7 6 我这样做是为了将 txt 文件中的信息获取
  • ruby splat 运算符在多重赋值期间到底如何获取数组的第一个和其余部分?

    在 ruby 中 可以将多重赋值与 splat 运算符结合起来 以模拟函数式语言中的first 和rest 或head 和tail first rest 1 2 3 4 first output 1 rest output 2 3 4 sp
  • 有人使用 ASP .NET 会员资格吗?

    想知道是否有人使用 ASP NET 会员资格 如果你这样做 请告诉我你的想法 如果您不使用它 您打算在未来的项目中使用它吗 如果没有 为什么 RWendi 是的 已经用过很多次了 它会为你节省很多工作 客户经常会要求更改用户名和管理密码重置
  • 如何使用适用于 C 和 C++ 的 GSOAP 访问 Amazon AWS S3?

    我到处搜索这个 但找不到一个合适的代码 我怎样才能访问亚马逊 AWS S3 http aws amazon com s3 服务使用GSOAP http gsoap2 sourceforge net 下面的代码来自OP 最初 该帖子包含问题和
  • VS 2012 扩展中的标准控件

    我目前正在更改公司内部的 VS 扩展以支持 Visual Studio 2012 我正在努力解决的是如何使 UI 动态适应活动的 VS 主题 我找到了几个颜色 画笔的资源键 Microsoft VisualStudio Shell 11 0
  • Google Freebase API 如何获取图像的 URL?

    所以 我试图弄清楚如何获取 Freebase 数据库中图像的 URL 我想要一张旧金山的照片 这就是我获取旧金山主题的方式 https www googleapis com freebase v1sandbox topic 2Fen 2Fs
  • 编译具有多个参数的案例类会导致 java.lang.StackOverflowError

    我有以下带有大量参数 150 的案例类 在使用 sbt 版本 0 14 编译期间导致 java lang StackOverflowError 异常 类定义 case class TestClass Param1 String Param2
  • 通过 url 将整数传递给 php $_GET

    所以我正在做一些 CTF 挑战之一是关于 php 类型杂耍 代码看起来像这样 if GET var1 hash md4 GET var1 print flag 所以我 80 确定我需要传入一个整数 这样它就会是真的 但我能操作的只是 url
  • jQuery Uncaught TypeError 与 Theme Punch Revolution Slider

    我遇到了一个无法追踪的问题 我正在使用革命滑块 http themes themepunch com theme revolution jq我不断收到 jQuery 错误 Uncaught TypeError Cannot read pro
  • WordPress REST API - 允许任何人发帖

    我正在 WordPress 上构建一个应用程序 它需要一个简单的前端表单 任何人都可以提交需要保存在数据库中的信息 我正在尝试通过 REST API 来处理这个问题 由于应用程序的性质 提交此信息时不能进行任何页面重定向 我可以毫无问题地设
  • LinqDataSource:过滤并绑定到gridview

    问题没有按照我想要的方式解决 但我继续感谢 ukaszW pl 他的时间和努力 我正在使用 gridview 控件和 linqdatasource 它一切正常 我添加了 searchBySubject 的功能 并且添加了WhereParam
  • 如何将“旧的 spring mvc 控制器与 jsp”和“vaadin7 ui”集成在一起

    我正在尝试将 vaadin 与我的 spring mvc 应用程序集成 我有一些带有 jsp 文件的 url spring mvc 控制器使用它们 例如 mysite com spring mysite com spring example
  • Zend 引擎可以嵌入 PHP 之外吗?

    如果我记得的话 Zend 引擎的原始设计之一是它相对容易嵌入人们可能希望创建的其他语言 基本上 PHP 语法没有所有 PHP 模块 现在还是这样吗 嗯 Zend 引擎基本上是一个解释 PHP 字节码的虚拟机 基本上 您要做的就是为一种语言和
  • 为什么这个 css 动画无限自动播放轮播会在项目重置时跳转?

    我正在努力根据此处的示例创建无限自动播放轮播 https codepen io jackoliver pen qVbQqW https codepen io jackoliver pen qVbQqW 请注意 codepen 示例是多么流畅
  • java jar 的清单属性

    在您的帮助下 我完成了我的第一个 Java 项目 现在我想创建一个 jar 并从 jar 运行应用程序 Java 项目 它是一个普通的控制台应用程序 它有另一个项目 控制台应用程序 作为依赖项 我通过右键单击 导出 创建一个 jar 使用