熟悉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. css.day04.eg

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. OUTPUT 在insnert delete update 的神奇功效

    Inserted   deleted  个人理解 应该是两个 临时表   分别存储 变动后的数据集  和  变动前的数据集 使用例子: 1.对于INSERT,可以引用inserted表以查询新行的属性 ...

  3. 一个PHP开发者总结的九条建议

    本文只是个人从实际开发经验中总结的一些东西,并不是什么名言警句,写出来有两个目的:一是时刻提醒自己要按照这些知识点来写自己代码,二是为了分享,说不定对你有用呢?万一,是吧... 1.首要意识:安全 大 ...

  4. Python文件操作方法

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块.   得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()   返回指定目录下的所有 ...

  5. 我是怎样自学日语的(太TM励志了!)

    学日语并不难,难是难在你有没有信心学好日语,有没有恒心学好日语.如果三天打鱼两天晒网的话,我劝你还是趁早死心,在语言世界里没有任何的捷径,有的只是艰辛和不懈的努力. 我自认为自己在学语言方面很有天赋, ...

  6. CSS,点击去除虚线边框代码

  7. IOC-控制反转(Inversion of Control),也成依赖倒置(Dependency Inversion Principle)

    基本简介 IoC 亦称为 “依赖倒置原理”("Dependency Inversion Principle").差不多所有框架都使用了“倒置注入(Fowler 2004)技巧,这可 ...

  8. sizeof(int *) 和 sizeof(int)型的大小问题

    小问题,暂时记录注意一下   printf("sizeof(int): %d\n", (int)sizeof(int));     printf("sizeof(int ...

  9. MySql存储过程—2、第一个MySql存储过程的建立

    看看如何创建一个存储过程.虽然通过命令行可以创建,但基本通过MySQL提供的Query browser来创建. 1.首先我们通过Administrator在test数据库中创建一个简单的表名叫”pro ...

  10. Python新手学习基础之函数-lambda函数

    lambda函数 在Python里除了用def定义函数外,还有一种匿名函数,也就是标题所示的lambda函数,它是指一类无需定义标识符(函数名)的函数或子程序. lambda函数的使用语法如下: la ...