熟悉Java的常用命令


面试例题11:使用jar命令。

请使用jar命令,将test文件夹压缩成.jar文件,并简述其压缩包的结构。

考点:对于Java程序员来说,更多情况下是使用集成Java开发工具,例如JBuilder、Eclipse等,而对于最基本的Java编译和常见的命令行工具往往都不熟悉,这个面试例题主要考查求职者对于Java命令行基本工具的使用,从而了解求职者对Java编程的熟悉程度。

出现频率:★★★

解析

熟练的Java开发者应该掌握常用的Java命令行工具。求职者应该熟练掌握javac、java和jar等工具。

1.javac

javac是JDK的标准编译工具,常见的形式为:javac <选项> <源文件>。它可能的选项包括:

-g:生成所有调试信息。

-g:none:生成无调试信息。

-g:{lines,vars,source}:生成只有部分调试信息。

-nowarn:生成无警告。

-verbose:输出关于编译器正在做的信息。

-deprecation:输出使用了不鼓励使用的API的源程序位置。

-classpath <路径>:指定用户类文件的位置。

-sourcepath <路径>:指定输入源文件的位置。

-bootclasspath <路径>:覆盖自举类文件的位置。

-extdirs <目录(多个)>:覆盖安装的扩展类的位置。

-d <目录>:指定输出类文件的位置。

-encoding <编码>:指定源文件中所用的字符集编码。

-target <版本>:生成指定虚拟机版本的类文件。

常见的问题:在使用javac编译.java源文件时找不到jar包,则需使用-classpath选项。例如:

javac -classpath .;jar01.jar;jar02.jar;……;jarN.jar class_name.java

使用-classpath选项,指定了在编译Java源代码时,用到类库的位置。一般用于该类库不在当前CLASSPATH的环境变量中。

2.java

java命令是JDK默认的java执行程序,在这里值得注意的是在执行带包的.class文件时,需要使用标准的Java包形式。例如:

java com.nsfc.hello

3.jar

随着JDK安装,在JDK安装目录下的bin目录中存在一个可执行文件,Windows下文件名为jar.exe,Linux下文件名为jar。它的运行需要用到JDK安装目录下lib目录中的tools.jar文件。jar命令行格式为:

jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名

其中{ctxu}是jar命令的子命令,每次jar命令只能包含一个子命令,这些子命令含义如下。

-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命令打包的时候会自动把该目录中的所有文件和子目录打入包中。

使用JDK的jar命令打包,会自动在压缩包中生成一个META-INF目录,其中有一个MANIFEST.MF文件。

使用jar命令进行如下压缩:

jar cf test.jar test

即将当前目录下的test目录所有文件压缩到test.jar文件中,使用WinRaR软件可以看到该压缩文件的目录结果如图2.6所示。

(点击查看大图)图2.6 jar压缩文档的结构
答案

可以使用"jar cf test.jar test"命令来完成压缩。压缩包中,包含一个test文件夹和一个META-INF文件夹,其中有一个MANIFEST.MF文件。

面试例题12:如何执行main()方法。

利用Java SDK中哪一条命令能够执行test的main()方法?

(a)java test。

(b)javac test。

(c)java test.java。

(d)java test.class。

(e)java test.main。

考点:考查求职者对java命令的熟悉程度。

出现频率:★★★

解析

求职者容易出现错误的是选择了(d),实际上,java命令后面只需要class文件的名称就可以,不用加入.class全名。如果使用java test.class命令,系统会认为这是一个包的结构,会查找test.class.class文件。会出现如下异常信息:

Exception in thread "main" java.lang.NoClassDefaultError:test/class
提示找不到相应的类文件。

答案:(a)。

4.-Djava.ext.dirs

java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个。前些日子找到(发现)-Djava.ext.dirs太好。

如:

Java代码 :

java -Djava.ext.dirs=lib MyClass

java -Djava.ext.dirs=d:\Work\eclipse_workspace\Test_Project\lib   com.tangqiao.rpctest.ProtocalServer

java cmd常用命令的更多相关文章

  1. Gulp安装流程、使用方法及cmd常用命令导览

    Gulp安装流程.使用方法及CMD常用命令导览 来自前端小白的gulp及周边知识学习总结 一.名词介绍: Npm--node包管理工具 一开始我不理解,包管理工具是什么鬼.后来用到的gulp也好,gu ...

  2. pip和cmd常用命令

    1.pip常用命令 显示模块的详情  pip    show 安装模块   pip    install    模块名称 卸载模块    pip    uninstall    模块名称 查看当前环境 ...

  3. 源代码管理相关命令(Git常用命令、Nuget常用命令、CMD常用命令)

    Git常用命令 源代码工具 工具名称 相关地址 Git Git for Windows VSC Visual Studio Code VSC插件(Gitlen) GitLens - Git super ...

  4. cmd常用命令介绍

    一.cdm命令介绍:CMD命令是一种命令提示符,CMD是command的缩写,即命令提示符(CMD),位于C:\Windows\System32的目录下,是在OS/2,Win为基础的操作系统(包括Wi ...

  5. CMD常用命令(一)

    常用命令大全 net>user heibai lovechina /add 加一个heibai的用户密码为lovechina net>localgroup Administrators h ...

  6. node.js cmd常用命令

    cmd1.c:如果我们想访问c盘,那么我们需要在命令行中输入c:就行了 2.cd..cd..就可以返回上层目录 3.cd mmcd mm即可访问mm文件夹 4.dir如果想查看该文件夹下有哪些文件,则 ...

  7. Mac下 CMD常用命令

    1.常用命令 pwd     当前工作目录 cd(不加参数) 进root cd(folder)      进入文件夹 cd ..     上级目录 cd ~     返回root cd -     返 ...

  8. windows之cmd常用命令

    一.简单介绍 CMD全称command,即命令提示符,是内置在windows图形操作系统内的磁盘操作系统,通过CMD可以方便用户查询比较复杂的信息或快速查找实现某些功能等,比如说打开文件.系统设置等操 ...

  9. java笔记1:准备工作:java历史、Java环境、java编辑器、cmd常用命令

    java的历史 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称. 由James Gosling和同事们共同研发,并在1995年正 ...

随机推荐

  1. IE8 placeholder兼容+Password兼容

    对于placeholder兼容问题 IE系列的大部分不兼容 使用JQ插件解决这个问题,确实用法很简单 jS下载地址http://www.ijquery.cn/js/jquery.placeholder ...

  2. Ext4.1 tree grid的右键菜单

    Ext4.1 tree grid的右键菜单功能其实挺简单的 只要添加一个itemcontextmenu事件,并在事件中显示出Menu就OK了. 代码: this.tree.on('itemcontex ...

  3. 【Usaco2008 Mar】土地购买

    [题目描述] 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000,000; ...

  4. protobuf的反射机制

    反射机制 java在运行状态时,能够知道任意类的所有属性和方法,都能够调用任意对象的任意方法和属性.这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. C++本身没有反射机制. ...

  5. 插入数据前设置字符编码为utf8

    xxx.php保存时选择utf8编码,页头最好加上 header('conten-type:text/html;charset=utf-8'); 在执行CRUD操作前先执行一下 mysql_query ...

  6. linux下php上传文件注意

    linux下php上传文件注意1.修改上传目录权限linux 修改某目录下所有所有子目录权限chmod -R 777 html修改某目录为任何用户都用写读执行权限chmod a+rwx html2.设 ...

  7. 安卓环境搭建(1)hellow world

    本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始Andr ...

  8. jquery如何判断滚动条滚到页面底部并执行事件

    首先理解三个dom元素,分别是:clientHeight.offsetHeight.scrollTop. clientHeight:这个元素的高度,占用整个空间的高度,所以,如果一个div有滚动条,那 ...

  9. ppt画笔标记在哪里|ppt中画笔工具功能怎么用?

    一.ppt中画笔工具功能在哪里? 这个画笔工具其实就相当于我们的一个标记工具,要实现标记功能首先将需要演示的PPT按住F5进入到放映状态,然后在右击ppt上的空白处就会弹出衣蛾对话框,在对话框中选择“ ...

  10. __file__ __name__ __doc__ argv详解

    __file__:表示输出当前py文件的路径 __name__: 表示输出当前函数名称,是main()函数(入口函数),或者是其他函数 __doc__: 模块的对象,输出模块的版权信息,如:作者 ch ...