linux下用java执行.jar文件, jar命令行打可执行jar格式是什么?

本帖子已过去太久远了,不再提供回复功能。在Linux下运行可执行Jar包_Linux编程_Linux公社-Linux系统门户网站
你好,游客
在Linux下运行可执行Jar包
来源:Linux社区&
作者:shirley_wheat
在Linux下运行可执行Jar包,首先准备jar包,一般的编译工具Eclipse,jbuilder都提供export功能,可以生成jar包。
运行的命令行很简答
java -jar 给定的jar包 [如果运行的jar包需要参数,直接后面依次给出就好]
java -jar Hello.jar& inPut.txt& outPut.txt
相关资讯 & & &
& (05/28/:04)
& (05/27/:01)
& (05/27/:12)
& (05/27/:03)
& (05/27/:50)
& (05/27/:27)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
匿名 发表于 张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个大还丹呵呵你好吧哈哈张亮亮是个Linux下制作可执行的JAR文件包及jar命令详解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Linux下制作可执行的JAR文件包及jar命令详解
上传于||文档简介
&&L​i​n​u​x​下​制​作​可​执​行​的​J​A​R​文​件​包​及​j​a​r​命​令​详​解
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢博客访问: 1347855
博文数量: 216
博客积分: 10013
博客等级: 上将
技术积分: 2352
注册时间:
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
制作可执行的JAR文件包及jar命令详解
&& 常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了;而另一种是使用 JET 来进行 编译。但是 JET 是要用钱买的,而且据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣。所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性。下面就来看看什么是 JAR 文件包吧:1. 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.class2. 创建可执行的 JAR 文件包制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法。Java 程序是由若干个 .class 文件组成的。这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给 CLASSPATH 环境变量或者 java 命令的 -cp 参数;运行时还要到控制台下去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 (.bat) 或者 Linux 的 Shell 程序。因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言。其实不然,如果开发者能够制作一个可执行的 JAR 文件包交给用户,那么用户使用起来就方便了。在 Windows 下安装 JRE (Java Runtime Environment) 的时候,安装文件会将 .jar 文件映射给 javaw.exe 打开。那么,对于一个可执行的 JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 (.chm 文档默认是由 hh.exe 打开的)。那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包。创建可执行的 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
我浪费了十分钟在这个空格上面,不然在执行jar命令的时候会提示java.io.IOException: invalid header field这个 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 正确的情况下)。3. jar 命令详解jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUN 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。使用不带任何的 jar 命令我们可以看到 jar 命令的用法如下:jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:-c 创建新的 JAR 文件包-t 列出 JAR 文件包的内容列表-x 展开 JAR 文件包的指定文件或者所有文件-u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)[vfm0M] 中的选项可以任选,也可以不选,它们是 jar 命令的选项参数-v 生成详细报告并打印到标准输出-f 指定 JAR 文件名,通常这个参数是必须的-m 指定需要包含的 MANIFEST 清单文件-0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数[jar-文件] 即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数[manifest-文件] 即 MANIFEST 清单文件,它是 -m 参数的附属参数[-C 目录] 表示转到指定目录下去执行这个 jar 命令的操作。它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用。  文件名 ... 指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中。下面举一些例子来说明 jar 命令的用法:1) jar cf test.jar test该命令没有执行过程的显示,执行结果是在当前目录生成了 test.jar 文件。如果当前目录已经存在 test.jar,那么该文件将被覆盖。2) jar cvf test.jar test该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:标明清单(manifest)增加:test/(读入= 0) (写出= 0)(存储了 0%)增加:test/Test.class(读入= 7) (写出= 6)(压缩了 14%)3) jar cvfM test.jar test该命令与 2) 结果类似,但在生成的 test.jar 中没有包含 META-INF/MANIFEST 文件,打包过程的信息也略有差别:增加:test/(读入= 0) (写出= 0)(存储了 0%)增加:test/Test.class(读入= 7) (写出= 6)(压缩了 14%)4) jar cvfm test.jar manifest.mf test运行结果与 2) 相似,显示信息也相同,只是生成 JAR 包中的 META-INF/MANIFEST 内容不同,是包含了 manifest.mf 的内容5) jar tf test.jar在 test.jar 已经存在的情况下,可以查看 test.jar 中的内容,如对于 2) 和 3) 生成的 test.jar 分别应该此命令,结果如下;对于 2)META-INF/META-INF/MANIFEST.MFtest/test/Test.class对于 3)test/test/Test.class6) jar tvf test.jar除显示 5) 中显示的内容外,还包括包内文件的详细信息,如:0 Wed Jun 19 15:39:06 GMT 2002 META-INF/86 Wed Jun 19 15:39:06 GMT 2002 META-INF/MANIFEST.MF0 Wed Jun 19 15:33:04 GMT 2002 test/7 Wed Jun 19 15:33:04 GMT 2002 test/Test.class7) jar xf test.jar解开 test.jar 到当前目录,不显示任何信息,对于 2) 生成的 test.jar,解开后的目录结构如下:  ==  |-- META-INF  |  `-- MANIFEST  `-- test    `--Test.class8) jar xvf test.jar运行结果与 7) 相同,对于解压过程有详细信息显示,如:创建:META-INF/展开:META-INF/MANIFEST.MF创建:test/展开:test/Test.class9) jar uf test.jar manifest.mf在 test.jar 中添加了文件 manifest.mf,此使用 jar tf 来查看 test.jar 可以发现 test.jar 中比原来多了一个 manifest。这里顺便提一下,如果使用 -m 参数并指定 manifest.mf 文件,那么 manifest.mf 是作为清单文件 MANIFEST 来使用的,它的内容会被添加到 MANIFEST 中;但是,如果作为一般文件添加到 JAR 文件包中,它跟一般文件无异。10) jar uvf test.jar manifest.mf与 9) 结果相同,同时有详细信息显示,如:增加:manifest.mf(读入= 17) (写出= 19)(压缩了 -11%)4. 关于 JAR 文件包的一些技巧1) 使用 unzip 来解压 JAR 文件在介绍 JAR 文件的时候就已经说过了,JAR 文件实际上就是 ZIP 文件,所以可以使用常见的一些解压 ZIP 文件的工具来解压 JAR 文件,如 Windows 下的 WinZip、WinRAR 等和 Linux 下的 unzip 等。使用 WinZip 和 WinRAR 等来解压是因为它们解压比较直观,方便。而使用 unzip,则是因为它解压时可以使用 -d 参数指定目标目录。在解压一个 JAR 文件的时候是不能使用 jar 的 -C 参数来指定解压的目标的,因为 -C 参数只在创建或者更新包的时候可用。那么需要将文件解压到某个指定目录下的时候就需要先将这具 JAR 文件拷贝到目标目录下,再进行解压,比较麻烦。如果使用 unzip,就不需要这么麻烦了,只需要指定一个 -d 参数即可。如:unzip test.jar -d dest/2) 使用 WinZip 或者 WinRAR 等工具创建 JAR 文件上面提到 JAR 文件就是包含了 META-INF/MANIFEST 的 ZIP 文件,所以,只需要使用 WinZip、WinRAR 等工具创建所需要 ZIP 压缩包,再往这个 ZIP 压缩包中添加一个包含 MANIFEST 文件的 META-INF 目录即可。对于使用 jar 命令的 -m 参数指定清单文件的情况,只需要将这个 MANIFEST 按需要修改即可。3) 使用 jar 命令创建 ZIP 文件有些 Linux 下提供了 unzip 命令,但没有 zip 命令,所以需要可以对 ZIP 文件进行解压,即不能创建 ZIP 文件。如要创建一个 ZIP 文件,使用带 -M 参数的 jar 命令即可,因为 -M 参数表示制作 JAR 包的时候不添加 MANIFEST 清单,那么只需要在指定目标 JAR 文件的地方将 .jar 扩展名改为 .zip 扩展名,创建的就是一个不折不扣的 ZIP 文件了,如将上一节的第 3) 个例子略作改动:jar cvfM test.zip test
阅读(5915) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。第一天关于-cp命令以及有包状态下java命令的使用。_明月镇魂吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:4贴子:
第一天关于-cp命令以及有包状态下java命令的使用。
1、-cp的使用方法:首先-cp是用在和javac命令下的 具体用法如下:1) c [options] filename.java
其中options为-classpath path 编译时需要的类路径 。 filename.java是要进行编译的.java文件。
-d directory 设定编译生成的.class文件输入到哪一个目录。
关于-d小技巧 : 如果.java文件中使用了package语句, 例如 package com.test. 加上-d . 选项会帮助在当前目录下自动生成嵌套的包文件夹。 如果不加-d 选项,则不会生成嵌套包文件夹。-g 在代码产生器中打开调试,使之以后可以调试产生的  -nowarn 屏蔽警告  -o 告诉c编译优化内联的 static 、final、 private成员函数。  -verbose 输出关于编译过程的各种信息2) [options] class 其中options为-classpath path 运行.class文件时需要的类路径。class是将要运行的.class文件。
需要注意一点: 在源文件使用 package 语句的情况下,应该在包最外层文件夹下执行。这个问题就是经常困扰我的在linux下使用终端进行java命令时出现的无法找到类的问题,要在包的最外层文件夹下执行才可以。  例如
com.test.maths.filename2、关于jar命令
打包命令 jar  jar [options] [jarfilename.jar] files  jarfilename.jar 是指定生成的打包文件名  files 是要打包的文件列表  options-&  c 创建新文档  f 指定打包名  m 文件列表中第一个文件名是外部清单文件名  t 列出jar文件内容  u 更新现存的jar  v 显示执行过程的详细信息  x 展开jar文件其中jar命令并未学过,是打包命令。
“健康随e保”可保障儿童41种重大疾病。150元起/年,给孩子45万高额保障。
如果在vi中带有包语句的话,不使用-d的话就不能打个包,当用命令时不管你加不加路径名都会出现未找到类的错误,究其原因应该是java通过包语句来寻找类,但是没有建包那么它就不存在,肯定不会找到相应的类,所以在用java
javac时要打包的时候就要用打包的版本,不打包就要用不打包
【总结】命令解析以及编译器,虚拟机如何定位类文章分类:编程
学有些日子了,一直都使用IDE来写程序。这样的好处就是能让我连如何用命令行编译,解释执行都不知道,就更不清楚中的编译器和虚拟机(包含解释器)是如何定位到类文件的。悲哀呀.......
1、安装,配置环境变量。
不将所在的目录配置到系统环境变量中,系统怎么能找到JDK中的编译器,解释器在哪呀?如果不指明JDK的bin文件夹的位置,在shell中是无法找到c/命令的。这点就不多说了。
2、编译,解释执行程序。【 c命令/java命令】
代码 &SPAN style="FONT-SIZE: small"&//缺省包,该程序源代所在位置: e:/project/ Test.
public class Test{
publicstatic void main(String[] args){
//缺省包,该程序源代所在位置: e:/project/ Test. public class Test{
publicstatic void main(String[] args){
编译命令: 【c e:/project/Test. 】
在e:/project目录下生成了Test.class
注意: ① 如果想要将Test.class生成在指定目录下,可以使用c -d命令,如【 c -d c:/ e:/project/Test.java 】
在c:/目录下生成T est.class(即e:/Test.class)
②c -cp 中的-cp并不是指定Test.的目录,这一点不要误解了。-cp/-classpath只能是指定类文件(.class文件)的路径。上面的命令不能写成:
java -cp e:/project Test.java
解释执行命令 : 【 j ava -cp e:/project Test】
将调用解释器执行e:/project中的Test.class。
注意: ①-cp 是指定用户类文件的位置,比如上面的Test.class的位置。这里因为要寻找Test.class类文件,而不是Test.文件,所以要通过-cp指定。千万没有这样的执行命令:
e:/project/Test
代码 &SPAN style="FONT-SIZE: small"&//缺省包,但中引用了一个JAR包内的自定义类,这个JAR包位于c:/目录下
import net.single.util.SL;
//导入自定义JAR包中的类
public class Test{
privateSL aObject=new SL(); //初始化JAR中的SL类
publicstatic void main(String[] args){
//缺省包,但中引用了一个JAR包内的自定义类,这个JAR包位于c:/目录下 import net.single.util.SL;
//导入自定义JAR包中的类
public class Test{
privateSL aObject=new SL(); //初始化JAR中的SL类
publicstatic void main(String[] args){
编译命令: 【 javac -cp c:/single.jar e:/project/Test.java】 在e:/project目录下生成了Test.class
注意: 如果当前你要编译的java文件中引用了其它的类,但该引用类的.class文件不在当前目录下(或在其他目录下,或在.zip/.jar内),这种情况下就需要在javac命令后面,加上-cp/-classpath参数来指明这些类的位置。 一般来说有三种指定方式:
① 绝对或相对路径:javac -cp c:/single.jar Test .java 或 javac-cp ../single.jar Test .java
(其中 .. 表示上一级目录 )
② 系统变量:javac -cp %CLASSPATH% Test .java (其中:%CLASSPATH%表示使用系统变量CLASSPATH的值进行查找,这里假设single.jar的路径就包含在CLASSPATH系统变量中)
③ 当前目录: javac -cp ./single.jar Test.java (其中 . 表示当前目录)
解释执行命令 :【 java -cp c:/single.e:/project Test】
注意: ①-cp的路径不仅指定了所需要的single.jar的位置,还必须指出编译后的Test.class的位置。
② 类路径中的不同项目要用分隔符区分,Unix系统的分隔符是冒号(:),Windows的是分号(;)
(3)Test.java 源代码
Java代码 &SPAN style="FONT-SIZE: small"&//该类在net.single包中,类中没有引入其他目录下的自定义类
package net.
public class Test{
publicstatic void main(String[] args){
//该类在net.single包中,类中没有引入其他目录下的自定义类package net. public class Test{
publicstatic void main(String[] args){
编译命令:【javac -d . e:/project/Test.java 】
注意: ① 如果没有-d而直接编译javac e:/project/Test.java。将会在 e:/project 目录下直接生成一个Test.class,但此Test.class无法解释执行,因为它实际上在edu.single包中。所以必须将包一起编译出来,这里用了-d参数。
② 上面的编译结果将在e:/目录下 自动根据包的结构形式创建文件目录,e:/net/single/Test.class
解释执行命令 : 【java -cp e:/ net.single.Test 】
现在我们总结一下:
[a.] 没有IDE环境,编译一个大型项目是很困难的,因为必须把需要被其他类引用的类先编译,而且最好把包结构一起编译出来。所以一般命令格式如下:
编译:javac -cp (需要引入的类文件路径1;需要引入的类文件路径2;....) -d (编译出的类文件存放的位置目录) (待编译文件路径)
执行:java -cp (需要解释执行的类文件路径) (带包的类文件)
例:现在要编译一个类源码: Test.java,其中该类位于E:/project/下
Test源代码中使用了一个JAR包中的类,这个single.jar包位于C:/目录下。
Test源代码中使用了一个自定义类Content,这个类的源代码Content.java位于E:/下
Test所在包为net.single,Content所在包为net.single.cont
解决: 步1:由于Test使用了Content类,所以必须先编译Content,而且Content类在E:/目录下,而且属于包net.single.cont
编译命令:
javac -d . e:/Content.java
编译结果:
在Content.java的当前目录下生成了一个 net/single/cont/Content.class
文件(带包结构),即e:/net/single/cont/Content.class
步2:编译Test类,并指明所引入的single.jar包和Content.class的位置
编译命令:
javac -cp c:/single.e:/net/single/cont -d. e:/project/Test.java
编译结果:在Test的上一级目录下生成了一个net/single/Test.class 文件,即e:/ net/single/Test.class
步3:解释执行Test.class
执行命令:
java -cp c:/single.e:/ net.single.Test
3、编译器,虚拟机如何定位到类的
Java代码 package net.
import java.util.*;
import net.single.util.*;
public class Test{
//SingleUtil类在c:/single.jar中的net.single.util包下
privateSingleUtil sut=new SingleUtil();
package net. import java.util.*;import net.single.util.*; public class Test{
//SingleUtil类在c:/single.jar中的net.single.util包下
privateSingleUtil sut=new SingleUtil(); }
编译命令:
javac -cp c:/single.jar -d .e:/project/Test.java
编译器首先找到e:/project/Test.java。然后对Test源代码进行编译,当编译到创建SingleUtil类对象的语句时,编译器要开始寻找SingleUtil.class的位置。编译器首先查找包含这个类的所有包的位置,并查询所有的import指令,确定其中是否包含了被引用了的类。
如上面的Test.java,编译器将试图查找java.lang.SingleUtil,java.util.SingleUtil,net.single.util.SingleUtil以及当前包中的SingleUtil(即net.single.SingleUtil)。编译器将在三个部分中查找类文件:
(1) 在JDK的lib目录下的标准类库文件中查找java.lang,java.util和net.single.util包。显然只能找到java.lang和java.util包。然后在这两个包中查找SingleUtil类文件。当然是找不到的。
(2) 在编译命令中-cp参数表明的类路径(C:/single.jar)下查找java.lang,java.util和net.single.util包。显然只能找到net.single.util包,然后在里面找到SingleUtil类文件。
(3) 在Test.java的当前目录下查找SingleUtil,也是没有的。
如果没有找到SingleUtil,或者找到多个SingleUtil。编译器报错。
java -cp .;c:\dir1\lib.jar Test
-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 jar包执行命令 的文章

 

随机推荐