如何运行.jar形式的Java程序

Python028

如何运行.jar形式的Java程序,第1张

1

确保安装了Java。在命令行中输入 java -version,如果没有最新版本,先更新,再继续。

2

使 .jar文件可执行。

.jar可以通过整理Java程序的类别文件来变为可执行文件,而编译器或Java虚拟机可以识别这些格式。.jar文件是通过javaw(Java应用程序管理器)执行的。你需要设置.jar文件中的应用程序接入点(即含有程序主功能的文件类别)。你需要通过清单文件(Manifest

file)来设置接入点。步骤如下:

Java工具会自动把meta-inf/manifest.mf设置为.jar的文件路径。创建新的清单文件的时候,名字会创建为 "Manifest-Version: 1.0, Created-By: 1.6.0 (Sun Microsystems Inc)"

创建manifest addition .txt 文件。输入 Main Class: [Package Name].[Class Name], ,把[Package Name]、[Class Name]替换为你的套件名称和类别名称(即创建了属性值对)不要忘了最后加一行空行

进入这个终端指令程序,调整清单文件,使其包括应用程序的接入点,把以下代码的中括号部分改为你程序的信息。 jar cfm [jar 文件名] [附加清单文件名] [导入文件]

重新看一下清单文件。设置了接入点以后,会是 "Manifest-Version: 1.0,Created-By: 1.6.0 (Sun Microsystems Inc), Main Class: [套件名称].[类别名称]"

你也可以用jar工具设置接入点。不过这样会覆盖清单文件中主类别属性。输入下面代码(把中括号部分替换) jar cfe [jar 文件名] [套件名称] [带主功能的种类名称

3

运行 .jar 文件 。用以下代码运行 .jar(java应用程序运行的主要方法): java -jar [Jar 文件名]

4

使得可以双击执行 .jar程序(可选)。 要双击打开.jar文件的话,需要把 javaw (java 应用程序管理器)可执行程序文件路径改变,输入以下代码: C:\Program Files\Java\j2rex.y.z\bin\javaw.exe" -jar "%1" %*

1、JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。

2、JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。

3、JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

4、以客户的角度来看,.jar文件就是一种封装,他们不需要知道.jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。

jar包:通常是开发时要引用通用类,打成包便于存放管理。

war包:是做好一个web应用后,通常是网站,打成包部署到容器中。

ear包:企业级应用,通常是EJB打成ear包。

所有的包都是用jar打的,只不过目标文件的扩展名不一样

一. jar命令用法:

在cmd命令窗口下输入jar,回车,就会提示改命令的用法:

二.例子(这里介绍的都是生成双击可执行的jar包):

1.首先介绍如何在命令行下执行打包程序。

1.1.没有包结构的最简单的工程。

(1)在c:盘下新建文件“HelloWorld.java”:

1 public class HelloWorld

2 {

3 public static void main(String[] args){

4 System.out.println("Hello world!")

5 }

6 }

(2)在命令行下输入c:\javac HelloWorld.java,在c:盘下编译生成“HelloWorld.class”。

(3)在c:盘下新建文件“menefest”(没有后缀名):

Main-Class: HelloWorld

注意最后要有一个空行,否则会出现找不到类的错误。

(4)打包:输入c:\jar cvmf menifest HelloWorld.jar HelloWord.jar HelloWorld.class,在c:盘下生成“HelloWorld.jar”。

(5)执行:输入c:\java -jar HelloWord.jar。屏幕回显“HelloWorld”。

1.2.有包结构的java工程。

(1)在c:\com\gosyl\demo\下新建文件“HelloWorld.java”:

package com.gosyl.demo

public class HelloWorld{

public static void main(String[] args){

System.out.println("HelloWorld")

}

}

(2)在命令行下输入c:\javac com/gosyl/demo/HelloWorld.java,在c:\com\gosyl\demo\文件夹下编译生成“HelloWorld.class”。

(3)在c:盘下新建文件“menefest2”(没有后缀名):

Main-Class: com.gosyl.demo.HelloWorld

注意最后要有一个空行,冒号后面要一个空格。否则会出现找不到类的错误。

(4)打包:输入c:\jar cvmf menifest2 HelloWorld.jar HelloWord.jar com/,在c:盘下生成“HelloWorld.jar”。

(5)执行:输入c:\java -jar HelloWord.jar。屏幕回显“HelloWorld”。

1.3.引用到外部jar包的java工程。

(1)在c:\com\gosyl\demo\下新建文件“Car.java”:

package com.gosyl.demo

public class Car

{

public static void main(String[] args){

Light.on()

}

}

(2)在c:\com\gosyl\demo\下新建文件“Light.java”:

package com.gosyl.demo

class Light

{

public static void on(){

System.out.println("Light is on!")

}

}

(3)打包1:输入c:\jar cvf Light.jar com/gosyl/demo/Light.class,在c:盘下生成“Light.jar”。

(4)在c:盘下新建文件“menefest-car”(没有后缀名):

Main-Class: com.gosyl.demo.Car

Class-Path: Light.jar

注意最后要有一个空行,冒号后面要一个空格。否则会出现找不到类的错误。

(5)打包2:输入c:\jar cvmf menifest-car Car.jar com/gosyl/demo/Car.class,在c:盘下生成“Car.jar”。

(6)执行:输入c:\java -jar Car.jar。屏幕回显“Light is on”。

三.总结

1.清单文件menifest,对格式要求很高,注意每个冒号后面要有一个空格,文件最后要有一个空行。

2.对于引用到外部jar包的工程,需要在manifest中定义好Class-Path属性。

3.对于双击.bat文件出现刷屏现象的情况,请直接把.bat文件的内容键入命令行执行。

4.对于重复签名的jar包,在META-INF里面会出现多个签名文件,删除掉多余的,保存其中一个才能保证jws正常启动。