jar文件是Java项目生成的一个小的文件项目,也可以描述为一个Java压缩包,里面封装 了,许多Java类以及方法,变量。本篇经验讲解下如何查看Java生成的jar文件。
首先我们先找到一个Java生成的jar文件,把它存放在指定位置已方便查看
然后右键点击jar文件,选择打开方式,然后设定为压缩文件打开的方式,这时候我们就会看到桌面上的jar文件变成了一个压缩包的图标。
然后我们双击桌面的jar文件,就可以以压缩包的形式查看jar文件里面的具体内容了。
我们要确保自己电脑上已经安装了Java运行环境,这样才能利用Java程序打开jar文件。
在确保安装完成Java程序之后,点击jar文件选择右键,选择默认打开方式,选择Java(TM)platform SE 进行打开。
设置完成之后,我们右键jar文件进行解压然后也可以查看jar文件的内容了。
linux下执行jar文件方法:命令行下进入文件目录,执行java -jar filejar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java -jar /file路径/filejar,这样在桌面双击即可打开该jar文件
创建可执行的 JAR 文件包详解:JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件--准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFESTMF 文件,这个文件是在生成 JAR 文件的时候自动创建的举个例子,如果我们具有如下目录结构的一些文件:
==
`-- test
`-- Testclass
把它压缩成 ZIP 文件 testzip,则这个 ZIP 文件的内部目录结构为:
testzip
`-- test
`-- Testclass
如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 testjar,则这个 JAR 文件的内部目录结构为:
testjar
|-- META-INF
| `-- MANIFESTMF
`-- test
`--Testclass
创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:jar cvfm testjar manifestmf test,这里 testjar 和 manifestmf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifestmf。因为要创建可执行的 JAR 文件包,光靠指定一个 manifestmf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的 JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST。关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了 Main-Class 一项。这在 MANIFEST 中书写格式如下:Main-Class: 可执行主类全名(包含包名)
例如,假设上例中的 Testclass 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifestmf 可以编辑如下:Main-Class: testTest ,这个 manifestmf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: testTest 一行,且该行以一个回车符结束即可。创建了 manifestmf 文件之后,我们的目录结构变为:
==
|-- test
| `-- Testclass
`-- manifestmf
这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包。也就是在目录树中使用==表示的那个目录中,使用如下命令:jar cvfm testjar manifestmf test
之后在==目录中创建了 testjar,testjar 就是执行的 JAR 文件包。运行时只需要使用 java -jar testjar 命令即可。
是因为你的代码在生成窗口时获取的窗口尺寸(很多例子是背景大小来设定,如果加载失效则尺寸就为0,接着就会出现你说的情况。),人为修改宽和高在打包试试看。自己亲测有效,找到原因才能有解决办法。
jar文件是一种特殊的压缩文件,你可以用JDK下的jar命令进行反解压,具体语法格式你可以从dos窗口进入JDK的安装目录,输入jar/,可以查看到jar命令的各种格式。把jar文件解压出来后,你就可以用javaexe命令去运行了。通常jar文件解压出来的都是java的class文件。
在要运行的程序目录新建 启动bat文件,编辑启动bat文件内容为:
java -jar shimejijar
pause
保存后即可。(如果运行不成功就看一下输出内容。如果运行成功,pause可以删掉。)
那应该是你用jar 打包时候 manifestmf 的main设定的不正确吧~~~~
你的main—class的路径对吗
Manifest-Version: 10
Main-Class: ChooseDatebaseChooseDatebase
最后几个空行看看 q: 7 6 35 85 62 7 加下我看看
Java程序完成以后 对于Windows *** 作系统 习惯总是想双击某个exe文件就可以直接运行程序 现我将一步一步的实现该过程 最终结果是:不用安装JRE环境 不用安装数据库 直接双击一个exe文件 就可以运行程序
下面我将以我最近写的一个程序作例子 进行该打包过程
该程序是使用了:Hibernate Spring Derby的Java GUI (JDK需要 版本 因该版本才有Derby) 我使用的是Eclipse进行开发
第一步:完成Java GUI程序
在Eclipse下 程序能够正常运行
第二步:准备清单文件(MANIFEST MF)
方法 :直接拷贝其它能运行的JAR文件中的MANIFEST MF进行修改
方法 :利用IDE工具 如Eclipse在生成JAR文件时自动生成
MANIFEST MF内容如下:
Manifest Version:
Main Class: manager ui MainFrame
Class Path: /lib/spring jar /lib/hibernate jar /lib/derby jar
SplashScreen Imager: manager/resources/images/splash jpg
说明:
Manifest Version - 指定清单文件的版本号
Main Class -指定程序运行的入口类 注意 类名后不要加class扩展名
Class Path -指定支持库的路径 指程序运行目录 即导出的JAR包所在目录 程序运行时依据Class Path项的设置路径来查找支持库 每一个支持库之间用空格隔开 在这里使用了hibernate spring derby
注意:
如果Java应用程序用到了一些Eclipse包 那么就必须将这些包也复制到程序运行目录 设置到Class Path 否则程序将无法运行 引用了一些外部组件也需要如此设置 如hibernate spring derby
除了入口类的包名和类名之外 其他设置项都不分大小写 比如 Class Path写成class path或CLASS PATH也可以 swt jar写成SWT JAR也行
类名后不要加class扩展名
每一行的 : 后都有一个空格 如Class Path:<空格> /lib/spring jar
Class Path中 引入的JAR文件每行不得超过 个 否则会报错 但在让人意外的是每行只有前 个有效 故将所有同类型的JAR文件做成一个JAR文件 如我这里的spring jar hibernate jar derby jar都是同类JAR文件的组合
第三步:修改spring配置文件
在spring的 sessionFactory bean的配置中则要这样写(与程序中ClassPathXmlApplicationContext对应)
<property name= mappingLocations >
<list>
<value>manager/entity/MyFile hbm xml</value>
<value>manager/entity/FileType hbm xml</value>
</list>
</property>
第四步:使用Eclipse生成JAR文件
右键单击项目名 在d出菜单中选择 Export 在d出的如下图所示的对话框中 选择 JAR文件 单击 Next
将右边不需要的文件都取消勾选 在 选择导出目标(Select the export destination) 项文本框中设置JAR包的输出路径和包名(可以任意取名)为 D:\manager\manager jar 接受其他的默认设置不变 单击 Next
附注 左边虽然选择了src目录 但源文件并不会导出到包中 除非勾选了 导出Java源代码文件和资源(Export java source files and resources) 项
接受默认设置不变 单击 Next
这一步较关键 如下图所示 选择 从工作空间中使用现有清单 项 将创建的清单文件输入 也可以通过旁边的 浏览 按钮来选择清单文件 输入清单文件后 单击 Finish Eclipse开始将项目打包
附:这里也可以选择Generate the manifest file 但生成的清单文件MAINFEST MF需要修改
注意:清单文件MAINFEST MF一定要按第二步那样设置
生成的JAR文件目录如下:
第五步:生成运行manager jar的批处理文件manager bat(该步可以不要)
在manager目录下创建一个批处理程序manager bat(名字任取 扩展名必须是bat) 其内容仅一句语句 如下
javaw jar manager jar
说明
javaw对应c:\jdk\jre\bin\javaw exe文件 如果windows提示命令未发现 则需要将c:\jdk\jre\bin路径加入到windows环境变量path中
在运行程序的时候有一个讨厌的黑色命令行窗口 要去掉它 可以将run bat内容更改如下 start javaw jar manager jar start是指调用了windows的 运行 命令
在后边加一个pause就可以让你看到具体哪里出错了 如:
start javaw jar manager jar
pause
双击manager bat 就可以运行该JAR文件了
第六步:让电脑不必安装JRE环境 也能运行
通常运行Java程序有个前提条件 用户电脑必须先安装JRE环境 虽然安装JRE环境非常简单 但毕竟多了一步 算是有一点点的瑕疵 这里给出一个不必让用户安装JRE环境的方法 其实现步骤如下
( )将原JDK中的 jre 目录复制到 D:\manager\java 目录下(java也可换成其他名称)
( )将JDK和JRE从本机卸载掉 这样表示本机没有安装JAVA运行环境
( )修改批处理文件manager bat中的命令为 start java\jre\bin\javaw jar manager jar 仅仅是在javaw前加上了一个相对应路径
双击manager bat即可在不安装JRE环境的电脑运行此Java应用程序
第七步:抛弃批处理文件( bat) 生成exe文件
用批处理文件运行程序似乎不够专业 虽然它足以完成运行任务 但习惯就象一种毒药一旦染上就很难摆脱它的影响 Windows统治下的人们早已经习惯运行扩展名是EXE的程序 用 bat他们就会感觉别扭
我们可以用一个叫JavaLauncher的免费小程序来代替批处理文件去运行Java程序 JavaLauncher的下载网址是
下载下来的文件是一个名JavaLauncher zip的压缩包 解压后的目录结构如下所示
JavaLauncher zip目录结构
source 目录包含了JavaLauncher的源程序 是用C语言写的
changes txt 是新版的修改说明
launch exe 是主程序
launcher cfg 是配置文件
readme txt 是一些说明和示例
我们只需要launch exe launcher cfg两个文件 将这两个文件复制到打包文件所在的目录 launcher cfg是一个仅三行内容的文本文件 将它修改如下
\java\jre\bin\javaw exe
jar manager jar
第一行设置指向JAR包managger jar的目录 由于launch exe和myswt jar同在一个目录 所以用 即当前目录
第二行设置指向jre\bin\javaw exe的路径 在上面已将jre目录复制到了java子目录中
配置好launcher cfg后 双击launch exe即可运行java应用程序
如果仔佃研究eclipse的启动方式 发现eclipse和JavaLauncher的原理一样 eclipse exe相当于launch exe startup jar相当于manager jar 只不过eclipse exe不象launch exe要具有通用性 所以它没有 cfg这样的配置文件 而是将启动信息固化在eclipse exe中
第八步:美化图标
launch exe文件的图标太单调了 让我们给它换个好看点的 换程序的图标需要用到一个免费的软件 Resource Hacker
第九步:最后的打包
发送给用户之前 通常要用WinZip或WinRAR将所有的文件全部打成一个压缩包 然后用户得到这个压缩包后 将其解压缩后即可运行程序 Eclipse软件就是这种方式
lishixinzhi/Article/program/Java/hx/201311/25574
以上就是关于java怎么打开jar全部的内容,包括:java怎么打开jar、jar 在linux下怎么打开、java桌面程序打包jar可执行文件,双击打开d出窗口最小化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)