linux下执行jar文件方法:命令行下进入文件目录,执行java -jar file.jar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java -jar /file路径/file.jar,这样在桌面双击即可打开该jar文件
创建可执行的 JAR 文件包详解:JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件--准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的.举个例子,如果我们具有如下目录结构的一些文件:
==
`-- test
`-- Test.class
把它压缩成 ZIP 文件 test.zip,则这个 ZIP 文件的内部目录结构为:
test.zip
`-- test
`-- Test.class
如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为:
test.jar
|-- META-INF
| `-- MANIFEST.MF
`-- test
`--Test.class
创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:jar cvfm test.jar manifest.mf test,这里 test.jar 和 manifest.mf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifest.mf。因为要创建可执行的 JAR 文件包,光靠指定一个 manifest.mf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的 JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST。关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了 Main-Class 一项。这在 MANIFEST 中书写格式如下:Main-Class: 可执行主类全名(包含包名)
例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:Main-Class: test.Test ,这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束即可。创建了 manifest.mf 文件之后,我们的目录结构变为:
==
|-- test
| `-- Test.class
`-- manifest.mf
这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包。也就是在目录树中使用==表示的那个目录中,使用如下命令:jar cvfm test.jar manifest.mf test
之后在==目录中创建了 test.jar,test.jar 就是执行的 JAR 文件包。运行时只需要使用 java -jar test.jar 命令即可。
需要注意的是,创建的 JAR 文件包中需包含完整的、与 Java 程序包结构对应的目录结构。而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包之前可以使用 java 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH 正确的情况下)。
2. 打开jar文件,只有命令行能打开
1.可能是打开jar包的打开方式问题,找个Jar文件,选择打开方式,输入C:\Program Files\Java\jre1.6.0\bin\javaw.exe,再选择打开就行了
2.可能是win7注册表参数问题,进入HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,
修改默认的键值为"C:\Program Files\Java\jre1.6.0\bin\javaw.exe" -jar "%1"。
3.如果还不行,试下直接指定java命令路径到指定的jare目录下运行,比如直接拷贝JRE到jar所在的目录,使用命令 %cd%\jre\bin\java - jar xxx.jar
4.再不行 重新下个JRE6或者更新的其他JRE版本试试
3. 如何用jar命令对java工程进行打包
一. 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正常启动。
4. linux安装jar命令
linux系统下jar是随着jdk安装的,所以安装jar其实很容易。下面由我为大家整理了linux下安装jar命令的相关知识,希望大家喜欢!
linux下安装jar命令
jar是随着jdk的安装的。在jdk安装的目录下有bin目录中,windows下的文件名为jar.exe,linux下文件名为jar.它的运行需要用到jdk安装目录下lib目录中的tools.jar.
jar文件在linux下的安装命令
首先安装java 的jdk..并设置 java environment.
then the order is: [root@localhoat root]# java -jar /the directory and file name, include .jar
附:linux下jar命令用法详解
jar的用法:
jar{ctxu}[vfm0M][jar-文件][manifest-文件][-c 目录] 文件名。。。
{ctxu}是jar命令的子命令,每次jar命令中只可以包含一个ctxu中的一个,分别表示:
-c创建新的jar文件包 --常用于打包
-t列出jar文件包的内容列表
-x展开jar文件包的指定文件或者所有文件--常用于解开包
-u更新已经存在的jar文件包
[vmf0M]中可以选,也可以不选,是jar命令的选项参数:
-v生成详细报告并打印到标准输出
-f指定jar文件名,这个参数是必须的
-m指定需要包含的manfest清单文件
-0只存储不压缩,速度快
-M不生成所有的清单文件
经常组合使用 cv0Mf/xvMf
补充:linux下运行jar包命令
java -jar xxxx.jar
Linux平台通过以下命令执行jar文件。 # java -jar file.jar
linux下执行jar文件方法:命令行下进入文件目录,执行java -jar file.jar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java -jar /file路径/file.jar,这样在桌面双击即可打开该jar文件 创建可执行的 JAR 文件包详解:JAR 文件就是...
linux下执行jar文件方法:命令行下进入文件目录,执行java -jar file.jar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java -jar /file路径/file.jar,这样在桌面双击即可打开该jar文件 创建可执行的 JAR 文件包详解:JAR 文件就是...
java -jar test.jar
在linux命令行下对jar进行解压缩操作,比如有个jar包/usr/local/EtnetChinaApplication.jar #解压jar包到临时目录cd /usr/localunzip EtnetChinaApplication.jar -d app#进入临时目录app,编辑文件ls app ...... log4j.properties xmemcache.prope...
java -jar xxxx.jar
nohup java -jar 启动1.jar & nohup java -jar 启动2.jar & nohup java -jar 启动3.jar &
这个shell脚本的话应该只会影响当前的窗口,运行完程序后把窗口关闭,再新开窗口,你的JDK应该还是1.4的 如果不行的话,那就运行完程序,再export一遍1.4的JDK 只对当前窗口有影响,换用户或者新开窗口都会变成1.4
不用用-cp, 有运行jar的-jar吧?或者jar 加什么,你想你要的库和主方法都在一个jar里,一般用不到-cp吧,除非你用到别的类库不在jar里。
5. java -jar命令
功能说明:
Java归档工具
语法:
jar [ 命令选项 ] [manifest] destination input-file [input-files]
补充说明:
jar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。jar是个多用途的存档及压缩工具,它基于ZIP和ZLIB压缩格式。然而, 设计jar的主要目的是便于将java applet或应用程序打包成单个归档文件。将applet或应用程序的组件(.class 文件、图像和声音)合并成单个归档文件时,可以用java代理(如浏览器)在一次HTTP事务处理过程中对它们进行下载,而不是对每个组件都要求一个新连 接。这大大缩短了下载时间。jar还能压缩文件,从而进一步提高了下载速度。此外,它允许applet的作者对文件中的各个项进行签名,因而可认证其来 源。jar工具的语法基本上与tar命令的语法相同。
命令选项
-c 在标准输出上创建新归档或空归档。
-t 在标准输出上列出内容表。
-x[file] 从标准输入提取所有文件,或只提取指定的文件。如果省略了file,则提取所有文件;否则只提取指定文件。
-f 第二个参数指定要处理的jar文件。在-c(创建)情形中,第二个参数指的是要创建的jar文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这两种情形中,第二个参数指定要列出或抽取的jar文件。
-v 在标准错误输出设备上生成长格式的输出结果。
-m 包括指定的现有清单文件中的清单信息。用法举例:“jar cmf myManifestFile myJarFile *.class”
-0 只储存,不进行 ZIP 压缩。
-M 不创建项目的清单文件。
-u 通过添加文件或更改清单来更新现有的 JAR 文件。例如:“jar -uf foo.jar foo.class”将文件 foo.class 添加到现有的JAR文件foo.jar中,而“jar umf manifest foo.jar”则用manifest中的信息更新foo.jar的清单。
-C 在执行 jar 命令期间更改目录。例如:“jar -uf foo.jar -C classes *”将classes目录内的所有文件加到foo.jar中,但不添加类目录本身。
程序示例
1:将当前目录下所有CLASS文件打包成新的JAR文件:
jar cf file.jar *.class
2:显示一个JAR文件中的文件列表
jar tf file.jar
3:将当前目录下的所有文件增加到一个已经存在的JAR文件中
jar cvf file.jar *
6. 命令行运行java程序,引入的其他jar包时,如何解决
java -cp .;A.jar Bx0dx0ax0dx0aA 是你的jar包,跟B放在一个文件夹就行。如果不在一个地方,就要指定了,如:x0dx0a java -cp .;d:\A.jar Bx0dx0aB 就是你要执行的类 x0dx0a==================x0dx0a原理:x0dx0ajava 是执行编译后的class的,这个不用多说,都知道...x0dx0a-cp 就是引入外部 zip包或者jar包。x0dx0a 正确来说就相当于你在环境变量配置的classpath后的参数。x0dx0a 即:指定运行时需要的class。x0dx0a 其中 . 是在当前目录找 ; 以后后面的,是到你指定的目录找 x0dx0a==================x0dx0a你看我给的例子了吗?我可没那么说。x0dx0a第一行可是这么写的:java -cp .;A.jar B (A、B的解释在上面) x0dx0a.; 也别给漏了