今天调式程序时出现这样的错误提示,在网上搜了下,找到下面的文章,问题解决,就是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
分享到:
相关推荐
必须使用的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工具包。
菜单“File”-->“Export” 基本上默认就可以,记得next到最后,然后选中主类,否则就会出现 Failed to load Main-Class manifest attribute from... 的错误 <br>如果没有使用其他插件啊,类库等,以上的...
资源来自pypi官网。 资源全名:tencentcloud-sdk-python-apigateway-3.0.553.tar.gz
需要测试的springboot项目,过程中遇到了idea打jar包,应为MANIFEST.MF 文件夹和 MANIFEST.MF 文件不在项目根目录下,导致多次 在本地 java -jar 运行jar包失败,当然放到docker 里作为容器启动也是失败的,后来在 ...
MDC_Manifest_Configurator-Ubuntu18-
本资源包含el7版本的CM5.12.1和CDH5.12.1: cloudera-manager-daemons-5.12.1-1.cm5121.p0.6.el7.x86_64.rpm ...manifest.json CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
CentOS 7.X版本专用 升级命令: rpm -Uvh polkit-0.112-26.el7_9.1.x86_64.rpm 参考链接: https://ubuntu.com/security/CVE-2021-4034 https://access.redhat.com/security/cve/CVE-2021-4034 ...
Files contained in apt-mirror-api-0.1.jar: META-INF/MANIFEST.MF META-INF/maven/com.moparisthebest.aptIn16/apt-mirror-api/pom.properties META-INF/maven/...
jdk-11.0.16.1_linux-x64_bin.rpm
steam-appmanifest, 在 ~/.steam/steam/SteamApps 中,生成 appmanifest_APPID.acf 文件 Steam AppManifest生成器这是一个简短的python 脚本,可以让 Steam 下载到下载非Linux应用程序中。注:Steam 不会运行没有...
gcc-linaro-7.5.0-2019.12-i686-mingw32_arm-linux-gnueabihf gcc-linaro-7.5.0-2019.12-win32-manifest compile arm from windows
KAFKA-3.0.0-1.3.0.0.p0.40-el7.parcel KAFKA-3.0.0-1.3.0.0.p0.40-el7.parcel.sha1 manifest.json
python库。 资源全名:check-manifest-0.26.tar.gz
META-INF/MANIFEST.MF META-INF/maven/net.sf.jodconverter/jodconverter/pom.properties META-INF/maven/net.sf.jodconverter/jodconverter/pom.xml document-formats.js ...
${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> ${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${...
CDH6.3.2完整安装包网盘下载,包含以下内容: cdh离线安装教程;enterprise-debuginfo-6.3.1-1466458.el7.x86...manifest.json;CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256;CDH-6.3.2-1.cdh6.3.2.p0.1605554-
manifest.json CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 cloudera-manager-server-6.3.1-1466458.el7.x86...