今天调式程序时出现这样的错误提示,在网上搜了下,找到下面的文章,问题解决,就是MANI-FEST.MF文件结尾少了一个 回车换行,导致文件不可识别,转帖中是manifest.txt,起的作用和MANI-FEST.MF一样。
http://blog.163.com/cjh7770996@126/blog/static/2246189220093289548548/
今天看HeadFirst的Java看到了第17章“发布程序”,本来还以为蛮简单的,当亲自上机实验,以包去创建可执行的jar时就出现问题了。
首先我手工建立好我的工程MyProject,其实就是建立一个名为MyProject的文件夹,然后在该文件夹下再创建source文件夹,然后就是你喜欢的包名,我地是com.jo 那么就是在source下再创建com文件夹,com下再创建jo文件夹,然后就是我地源文件了,我建一个名为Test.java的源文件,然后简单的写下一下代码做测试:
------------------------------------------------------------------------------
package com.jo;
public class Test {
public static void main(String args[]){
System.out.println("Testing");
}
}
--------------------------------------------------------------------------------
OK,然后就运行CMD(我的操作系统是windows当然就是CMD了,而且我已经配置好我的java环境变量了)。进入到工程文件下的source文件夹:
cd MyProject/source
接着就是编译文件,我采用了书中所建议的文件组织方式,就是源代码放在source文件夹中,然后编译过的文件就放在classes文件夹中
javac -d ../classes com/jo/Test.java (编译此目录下的所有源文件则输入:javac -d ../classes com/jo/*.java)
书中提到如果还没有建立好对应的输出目录结构,只要加上-d,编译器会自动建立相应的目录结构,但起码要建立"classes"文件夹。
然后要执行程序就需要进入到classes目录下,运行:
java com.jo.Test
运行顺利的话就会在命令提示符下看到Testing.
接着就是以包来创建可执行的jar
步骤一:
确认所有的类文件都在classes目录下,并且对应的包结构都正确。
步骤二:
创建manifest.txt文件来描述哪个类带有main(),以及确认有使用完整的类名称
在manifest.txt中写入一行:
Main-Class: com.jo.Test
然后把manifest.txt文件放入classes目录下
注:这里代码最后一定要加入换行符,就是回车。否则打包的时候是可以通过,但是无法识别的,最后执行jar文件的时候会提示:Failed to load Main-Class manifest attribute from ...虽然现在我们编程的时候大多时候都会用到IDE,但这是基础,我个人认为有必要去了解。
最后命令提示符里进入到classes目录,
cd MyProject/classes
然后打包:
jar -cvmf manifest.txt myjar.jar com
关于jar后的参数,如果是有Unix或Linux经验的话,估计是很了解的,然后最后的那个com,是指定目录之用,无需是完整的。
最后的最后,当我们需要执行这个jar文件的时候,就输入:
java -jar myjar.jar
分享到:
相关推荐
-rw-r--r--. 1 root root 4239360 Jun 25 16:54 openssh-9.0p1-1.el7.x86_64.rpm -rw-r--r--. 1 root root 654600 Jun 25 16:51 openssh-clients-9.0p1-1.el7.x86_64.rpm -rw-r--r--. 1 root root 3108976 Jun 25 16...
必须使用的jar包。为JRE5.0+的更好的版本所提供 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField....
离线安装包,亲测可用
cxf-manifest.jar cxf-services-sts-core-2.6.3.jar cxf-services-wsn-api-2.6.3.jar cxf-services-wsn-core-2.6.3.jar cxf-xjc-boolean-2.6.0.jar cxf-xjc-bug671-2.6.0.jar cxf-xjc-dv-2.6.0.jar cxf-xjc-runtime-...
cluster-glue-libs-1.0.5-6.el6.i686.rpm是centos工具包。
《智能驾驶:MDC Manifest Configurator在Ubuntu 18上的应用与详解》 在智能驾驶领域,高效、安全的系统配置至关重要。MDC(Mobileye Drive Compute)是英特尔Mobileye公司推出的高性能计算平台,用于自动驾驶车辆...
其中,`MANIFEST.MF`文件记录了jar文件的基本信息,如版本、作者等。此外,`services`子目录下可能包含`javax.persistence.spi.PersistenceProvider`等服务配置文件,指示了Hibernate Commons Annotations作为JPA...
在Java环境中,JAR文件(Java ARchive)实质上就是一种特殊的ZIP文件,包含Java类、资源文件以及元数据,如MANIFEST.MF文件,用于描述JAR的内容和依赖。 使用"axiom-api-1.2.12.jar.zip"时,开发人员通常需要先解压...
此外,通过运行`python setup.py install`或利用pip工具(`pip install path/to/easy-module-attribute-getter-0.9.37.tar.gz`),可以在本地环境中安装这个库。 总的来说,"easy-module-attribute-getter"是一个...
需要测试的springboot项目,过程中遇到了idea打jar包,应为MANIFEST.MF 文件夹和 MANIFEST.MF 文件不在项目根目录下,导致多次 在本地 java -jar 运行jar包失败,当然放到docker 里作为容器启动也是失败的,后来在 ...
在描述中提到,当使用Java通过JDBC访问MySQL数据库时,需要在Java工程中引入这个jar包。这个jar包包含了所有必要的类和资源,例如`com.mysql.cj.jdbc.Driver`,这是MySQL Connector/J的主要入口点,Java应用程序通过...
- `manifest`: 可以在ZIP文件中添加或修改MANIFEST.MF文件,这对于制作符合Java应用规范的JAR文件尤其有用。 这些功能使得Apache Ant成为Java开发中的强大工具,尤其是在自动化构建过程中处理ZIP文件时。不过,由于...
ubuntu-22.04-preinstalled-server-arm64+raspi.img.xz http://cdimages.ubuntu.com/ubuntu/releases/22.04/release/
1. **META-INF**:这是JAR文件的标准目录,包含MANIFEST.MF文件,记录了jar的基本信息,如主类、依赖库等。 2. **org.hibernate**:这是核心代码所在的主要包,下辖多个子包,涵盖了Hibernate的所有核心功能,如: ...
在压缩包中,"SPARK2_ON_YARN-2.4.0.cloudera2.jar"是Spark在YARN上的运行时JAR文件,包含了运行Spark应用程序所需的依赖。"manifest.json"通常包含有关软件包的信息,如版本、依赖项等,对于CDH环境来说,它可能是 ...
2. **MANIFEST.MF文件**:在创建可执行JAR文件时,可以在MANIFEST.MF文件中指定依赖的库,确保运行时能找到JDBC驱动。 3. **使用Maven或Gradle**:在项目构建配置文件中(如pom.xml或build.gradle),声明对mysql-...
flink-1.14.4-scala_2.12 + CDH6.2.1 版 parcel 包, 包含 FLINK-1.14.4-BIN-SCALA_2.12-el7.parcel FLINK-1.14.4-BIN-SCALA_2.12-el7.parcel.sha manifest.json (以上三个文件放入 /opt/cloudera/parcel-repo/ 下...
3. **MANIFEST.MF**: 如果你正在创建一个可执行的JAR文件,可以在`MANIFEST.MF`文件中指定`Class-Path`属性来包含此驱动。 4. **Maven/Gradle**: 如果你的项目使用构建工具,如Maven或Gradle,可以在pom.xml或build....
对于传统的Java应用,这可以通过设置`CLASSPATH`环境变量或在`MANIFEST.MF`文件中指定`Class-Path`来实现。对于现代的Maven或Gradle项目,可以直接在构建配置中声明依赖。 使用MySQL Connector/J的基本步骤如下: ...
在Windows 7系统下运行Java应用包(JAR文件)时遇到“Could not find the main-class”错误,是常见的问题之一。这个问题通常出现在尝试启动一个没有正确指定主类的JAR文件时。主类是包含main方法的类,它是程序执行...