不使用开发工具将文件或文件夹打包成jar文件

xiaoxiao2021-02-28  81

有些情况下,我们需要把项目打包成jar文件,我们可以通过eclipse来打包也可以自己手动打包。 手动打包可以给任何文件夹打包,但是打包的文件夹中必须存在MANIFEST.MF文件,一般是在文件夹中有一个META-INF文件夹,在该文件夹中放MANIFEST.MF文件。该文件是打jar包必须有的文件。该文件内容简单的可以如下:

Manifest-Version: 1.0 Main-Class: snake.demo.SnakeGame

就是Manifest版本和该项目中包含main方法的主类的全限定性类名,有的时候还可以写要导入的包的路径,如果有多个包,那么包与包之间以空格隔开,例如:Class-Path: lib\mysql-connector-java-5.1.26-bin.jar lib\jna-4.1.0.jar

也可以是很复杂的,比如下面的:

Manifest-Version: 1.0 Export-Package: com.genuitec.eclipse.core,com.genuitec.eclipse.core.gs dc,com.genuitec.eclipse.core.ui.action,com.genuitec.eclipse.core.ui.p reference,com.genuitec.eclipse.core.ui.wizard Bundle-ClassPath: . Bundle-Name: %pluginName Bundle-Localization: plugin Bundle-NativeCode: /lib/storage32.dll; osname=Win32; processor=x86, * Require-Bundle: org.eclipse.core.runtime.compatibility;visibility:=ree xport,org.eclipse.ui.forms,com.genuitec.eclipse.core.common.platform; visibility:=reexport,com.genuitec.eclipse.jniwrapper,org.apache.commo ns.codec;bundle-version="1.3.0";visibility:=reexport,org.eclipse.jsch .core;bundle-version="1.1.200",com.jcraft.jsch;bundle-version="0.1.41 ",org.eclipse.core.net;bundle-version="1.2.100" Plugin-Class: com.genuitec.eclipse.core.ViperCore Bundle-Vendor: %providerName Eclipse-LazyStart: true Bundle-Version: 12.0.0.me201311281640 Bundle-ManifestVersion: 2 Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActiva tor Bundle-SymbolicName: com.genuitec.eclipse.core; singleton:=true Name: com/genuitec/eclipse/core/gsdc/SecureActivationReader$A.class SHA1-Digest: AubAaQkurer2+un11/VozYKupS4= Name: com/genuitec/eclipse/core/activation/SystemId$InvalidLicenseData Exception.class SHA1-Digest: 8ZeejHRhPE/wHc2YiMOQA5qva88=

我们先不去管内容的意义,如果要打包的文件夹中以及有MANIFEST.MF就可以进行打包,如果没有,你可以创建META-INF文件夹并在里面创建MANIFEST.MF文件。

我要打包的文件夹是一个交snake的项目 我们在要打包的文件夹所在的目录下 执行命令,所以要把路径切换到文件所在盘符,然后输入命令:jar cvfm snake.jar snake\META-INF\MANIFEST.MF -C snake/ . 注意最后的/ 和点,斜杠和点之间有一个空格。

【jar cvfm snake.jar snake\META-INF\MANIFEST.MF -C snake/ .】这句命令中,snake.jar是我要生成的jar文件名,可以任意取,snake\META-INF\MANIFEST.MF就是该文件夹中的MANIFEST.MF文件的路径,-C是指的是你要将哪个文件进行打包,/ .表示该文件夹中的所有文件。 具体使用说明如下:

上面我们说的是文件夹打包成jar,那时因为一个项目中存在不是java文件的文件需要打包,所以我们的打包方式需要存在清单文件:MANIFEST.MF。但是如果我要打包的文件全是class文件,比如自己编写的库。那么就用到命令: jar cvf [打包后的文件名].jar [要打包的文件1].class [要打包的文件2].class [要打包的文件3].class [……更多]

具体如下图:

转载请注明原文地址: https://www.6miu.com/read-66380.html

最新回复(0)