怎么样运行jar
一、制作jar文件
在制作.jar 文件之前你必须先编译好你的.java文件。假设我们的文件目录是c:javamyJavahelloHello.java
现在假设Hello.java的文件内容为:
/*
*
* Hello.java
*
*/
public class Hello {
public static void mian(String[] args){
System.out.println("Hello, World !");
}
}
在进行.jar 制作的时候你必须把路径切换到Hello.java 所在的文件目录的外一层文件夹(.jar文件要在Dos才能创建(windows平台)),即myJava
运行如下的命令可以把当前文件夹下的所有内容都包含在.jar 文件内。
c:javamyJava>jar cf Hello.jar .
说明一下:命令行中 jar 是生成.jar文件的程序的调用接口。 cf 是一对可选项(options)后面的Hello.jar 就是我们给文件取的名字了,最后一个点号(.)指示工具将当前目录下的所有文件都放进jar文件,jar工具进行地归操作,当文件夹中含有不止一个文件时。
二、察看jar文件
其实,jar文件是采用WinZip 的格式进行文件压缩的,所以你可采用WinZip 解压缩文件的,还可以利用如下的命令行察看:
c:javamyJava>jar tf Hello.jar
你会看到本地机子里的jvm 的版本以及其生产厂家信息
还有 Main-Class: Hello.Hello 等信息。
三、把文件移到你喜欢的目录
假设你想把jar 文件移到目录:d:Java2myFirst 下面,请运行如下的命令:
d:Java2myFirst> jar xf c:javaHello.jar
说明一下:jar 文件可以封闭,就意味着指定的包中的每一个类必须包含在同一个目录下。
四:内容清单 manifest.fm
manifest.fm 文件是由键值对组成的。其中包含前面所说的jvm 的版本号 / 创建他的厂商等。
五、增加清单的内容
当若我们编辑了如下的一个addContents.txt 文件
Name: myJavaHello
Sealed: true
则可以通过如下命令把其加入到我们的清单文件中:
c:javamyJava>jar umf addContents.txt Hello.jar
六、运行jar文件
你可以通过以下的方式来运行jar文件:
c:javamyJava>java -classpath . -jar Hello.jar
说明:需要命令的 -classpath . 部分是因为类的路径环境变量中没有(.)路径。
也可以
c:javamyJavaHello>java -jar Hello.jar
假如你的电脑是windows XP 版本 你还可以直接到你的c:javamyJavaHello 下双击Hello.jar 文件 但是你看不到运行的结果
(图形界面程序可以这样运行),在windows 2000 上面,jar 文件被视作.zip 文件所以你一双击他就会把你的文件解压,而不是运行文件。所以你只有采用命令行的方式了。
运行命令之后,你会看到在你的屏幕上显示的
Hello, World !
字样。
结束语:
到这里我们jar 文件的创建和运行等相关的介绍算结束了。你可以试着去验证一下。然后创建复杂的程序,比如具有界面的高级程序。
假如你对jar 文件 很感爱好 或者 想对她有更深刻的了解那么你可以在dos 低下敲入 jar 察看更多的帮助信息和许多options 的解释。
jar 帮组文档内容:
C:>jar
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成具体输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
假如一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。
示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .
本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=584158
怎么样运行jar的更多相关文章
- 不显示cmd窗口运行jar包
今天,打开导出的jar包,发现并不能运行,查看jar包中的META-INF文件夹下的MANIFEST.MF文件,发现MANIFEST.MF中并没有Main-Class,于是,就手动添加相应的信息,本项 ...
- 运行jar应用程序引用其他jar包的四种方法
转载地址:http://www.iteye.com/topic/332580 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个ja ...
- 【java】 linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...
- 可运行jar包生成步骤和jar包的生成
一.可运行jar包生成步骤 1.进入.class文件所在目录,新建一个记事本文件,假设为1.txt,文件内容: 1> Main-Class:可运行类的名字 ( 例如:Main-Class:T ...
- IDEA如何打包可运行jar的一个问题。
转自http://bglmmz.iteye.com/blog/2058785 背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包:或者某些项目不是WEB应用,纯粹是后台应用,发 ...
- [Java] 可运行 jar 记录
在 Eclipse 上,通过 Export 选择 Java 下的 Runnable JAR file ,可以将项目导出一个可执行的 jar 包. 例子如下 1. Eclipse 项目只有一个文件 ma ...
- 运行jar应用程序引用其他jar包的四种方法(转)
Runnable JAR RunnableJAR(1)在Eclipse中操作 上面的截图中eclipse的版本是: 方案二:安装Eclipse打包插件Fat Jar 方案一对于含有较多第三方jar文 ...
- java中关于如何运行jar格式程序的说明
通常情况下,我们用打包工具如Eclipse的export工具制作的jar包是无法通过鼠标双击来运行的. 此时我们需要启动DOS窗体,在DOS窗体中输入java命令运行程序(前提是你的环境变量class ...
- 【ant项目构建学习点滴】--(3)打包及运行jar文件
<?xml version="1.0" encoding="UTF-8"?> <project default="compile&q ...
- Intellij IDEA下导出Java工程的可运行JAR包
Intellij IDEA下导出Java工程的可运行JAR包 昨天一直向导出一个Java工程的可运行JAR包,然后查阅网上的资料以及自己一遍一遍的尝试,均以失败告终.可以导出JAR包,但是导出的JAR ...
随机推荐
- ARM相关概念(学习目标、分类、商业模式及半导体公司、嵌入式处理器)
1.学习ARM的目标 (1)对比X86,8051汇编,从更底层的角度去理解相关知识 (2)为后续嵌入式课程做准备 (3)了解ARM的体系结构,能够看懂ARM汇编 2.ARM分类 (1)按照版本号分类: ...
- R语言 plot()函数
语法: plot(x, y, ...) x,y分别是两个向量,x为横轴坐标,y为纵轴坐标 其他参数: type= "p" for points, 散点图 默认 "l&qu ...
- MySQL8.0.11安装后,使用CMD无法启动mysql服务
首先,先把mysql的bin路径添加到系统环境变量 这样做可以,直接进入CMD后执行mysql服务,不需要进入mysql的bin文件路径去执行. 第一步:在MySQL的安装文件的bin目录(例如:C: ...
- SQL 游标介绍及使用
游标 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果.每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理. 游标是处理 ...
- JS利用HTML5的Web Worker实现多线程
需求:有一个长时间的斐波拉契的计算希望放在分线程中计算,计算的得到结果后再返回给主线程展示,再计算的时候不冻结页面 var number = 55;//传入分线程的参数 var worker = ne ...
- Nexus-VDC(Virtual Device Context)
VDC实际上是将一台物理的Nexus7K设备虚拟为多个逻辑的VDC设备,该术语叫做VDC(Virtual Device Context),该虚拟技术实际上是在一个物理设备架构和内核上运行多个VDC,已 ...
- 洗牌利器——random.shuffle()函数
random.shuffle()是一个非常实用但是又非常容易被忽略的函数,shuffle在英语里是"洗牌"的意思,该函数非常形象地模拟了洗牌的过程,即: random.shuffl ...
- php对象、面向对象
对象 万物皆对象 一切可见之物都是对象 一切不可见之物也是(抽象的事物也是对象): 对象包含两部分 1对象的组成元素 对象的数据模型又称为对象的属性,又被称为对象的成员变量 2.对象的行为 是对象的行 ...
- 解决 Anaconda 3.7更新出现CondaHTTPError与SSLError
1.问题描述: An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, ...
- Servlet返回的数据js解析问题
Servlet返回的数据js解析问题 方式1:Json 接收函数:ajax.responseText后面没括号 其实在之前所说的ajax中还遗留了一些问题就是,Servlet返回给js的数据是如何被j ...