熟悉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. 千万数量级分页存储过程 +AspNetPager现实分页

    存储过程 USE [ForeignTradeDB] GO /****** Object: StoredProcedure [dbo].[CommonGetDataPager] Script Date: ...

  2. 015_xml_函数

    015_xml_函数 --环境准备******************************************************************* USE test --f:/t ...

  3. ubuntu远程连接

     apt-cache search openssh-server   //直接用apt-get install openssh-server安装.记不清包名字时可用apt-cache search o ...

  4. 你好,C++(33)对象生死两茫茫 6.2.3 一个对象的生与死:构造函数和析构函数

    6.2.2  使用类创建对象 完成某个类的声明并且定义其成员函数之后,这个类就可以使用了.一个定义完成的类就相当于一种新的数据类型,我们可以用它来定义变量,也就是创建这个类所描述的对象,表示现实世界中 ...

  5. 04_RHEL7.1忘记root密码

    在开机进入启动项时,选择需要重设密码的那个启动项 按e进入编辑模式,找到rhgb和quiet参数(几乎在最下面),替换为 init=/bin/sh 按ctrl+X不需密码进入shell 以rw的方式重 ...

  6. webBrowser(网络转载)

    C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 [C#] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ...

  7. grails&groovy的IllegalArgument异常

    我在开发的过程中遇到了这样一个异常,总是提示IllegalArgument异常,代码大致如下: if(haomgl.save(flush:true)){ //更新库存:状态为2的位置存煤 def cu ...

  8. a标签无disabled属性

    <a class="button">确认</a> 我们经常会用a标签来设置按钮样式,如果点击它跳转页面,那么没有任何问题. 如果绑定了ajax事件,即点击后 ...

  9. Django models通过DateTimeField保存到MySQL的时间的时区问题

    最近开始使用Django开发一些系统,在models.py中设置一些数据库表结构并给日期时间字段赋初值,不过在使用的过程中,遇到一点问题.问题是,我本来服务器使用的市区是“Asia/Shanghai” ...

  10. 如何让div出现滚动条

    由于DIV本身属性并没有滚动条设置,但是有些地方的设计却需要出现滚动条,如何实现呢?本人采用CSS样式来控制显示!而且也很简单,代码如下: <div style="OVERFLOW-Y ...